Skip to main content

Full text of "Byte Magazine Volume 02 Number 07 - Model Railroads"

See other formats


$1.50  in  USA 


w* 


\ 


The  9-inch  screen  of  the  CT-VM  monitor  ($175)  shown  here  with  Southwest's  newCT-64  illustrates  the  terminal's  64 -character  lines,  switchable  control 
character  printing,  and  word  highlighting.  At  just  $500  for  both,  these  matching  units  provide  a  complete  CRT  terminal  with  full  cursor  control,  1 10-1200  Baud 
serial  interface,  and  many  other  features. 


Now  $325  buys  a  64-character  terminal  kit 


Our  new  CT-64  terminal  kit  gives  you  scrolling,  full 
cursor  control,  128-character  ASCII  display  (with  both 
upper  and  lower  case),  and  two  1 K  memory  pages.  It's 
usable  with  any  8-bit  computer. 

Add  our  optional  fully  assembled  12  MHz  CT-VM 
monitor  for  another  $175  and  you'll  have  the  best  CRT 
terminal  buy  offered  anywhere. 

The  CT-64  gives  you  full  cursor  control,  home-up  and 
erase,  erase  to  end  of  line  or  end  of  frame,  cursor  on  /off, 
screen  reversal,  scroll  or  page,  solid  or  blinking  cursor, 
page  selection,  and  end-of-page  warning  beeper. 


The  CT-64's  features  include: 

64  or  32  characters  per  line  (16  lines) 

Premium  display  with  both  upper  and  lower  case 

letters,  and  descenders  (g,  j,  etc.) 

Two  1K  pages  of  8 -bit  memory 

Scrolling  or  page  mode  operation 

32  control  character  decoding 

Prints  control  characters  (selectable) 

128-character  ASCII  set 

1 10  /220  Volt  50-60  Hz  power  supply 

Highlights  words  with  reversed  background 

Optional  9-inch  monitor  with  matching  cover  available 

Complete  with  keyboard,  power  supply,  110-1200 

Baud  serial  interface,  and  case 


Okay,  Southwest,  I  know  a  bargain  when  I  see  it. 

□  Enclosed  is  $500  for  the  whole  works 
(CT-64  terminal  plus  12  MHz  CT-VM  monitor). 

□  Here's  $325  for  the  CT-64. 
D  Send  only  data  for  now. 

□  Send  me  your  $395  MP-68  computer  kit. 


D  orBAC# 
□  orMC#  . 
Name 


_Exp.  Date 
_Exp.  Date 


City. 


.  Address 
.  State 


.ZIP. 


-EI 


5a 


Southwest  Technical  Products  Corp. 

219  W.  Rhapsody,  San  Antonio,  Texas  78216 
Circle  1  on  inquiry  card. 


Meet  the  most  powerful 
/xC  system  available  for  dedicated  work. 

Yet  it's  only  $595: 


Here's  the  muscle  you've  been  telling  us  you  wanted: 
a  powerful  Cromemco  microcomputer  in  a  style  and  price 
range  ideal  for  your  dedicated  computer  jobs — ideal  for 
industrial,  business,  instrumentation  and  similar  applica- 
tions. 

It's  the  new  Cromemco  Z-2  Computer  System.  Here's 
some  of  what  you  get  in  the  Z-2  for  only  $595: 

•  The  industry's  fastest  juP  board  (Cromemco's  highly 
regarded  4  MHz,  250-nanosecond  cycle  time  board). 

•  The  power  and  convenience  of  the  well-known  Z-80 
liP. 

•  A  power  supply  you  won't  believe  (  +  8V  @  30A, 
+  18V  and  —18V  @  15A  —  ample  power  for  addi- 
tional peripherals  such  as  floppy  disk  drives). 

•  A  full-length  shielded  motherboard  with  21  card  slots. 

•  Power-on-jump  circuitry  to  begin  automatic  program 
execution  when  power  is  turned  on. 

•  S-100  bus. 

•  Standard  rack-mount  style  construction. 

•  All-metal  chassis  and  dust  case. 

•  110- or  220-volt  operation. 

DEDICATED  APPLICATIONS 

The  new  Z-2  is  specifically  designed  as  a  powerful  but 
economical  dedicated  computer  for  systems  work.  Notice 
that  the  front  panel  is  entirely  free  of  controls  or  switches 
of  any  kind.  That  makes  the  Z-2  vir- 
tually tamper-proof.  No  accidental 
program  changes  or  surprise  mem- 
ory erasures. 

FASTEST,  MOST 
POWERFUL  MC 

Cromemco's  microcom- 
puters are  the  fastest  and 
most  powerful  available. 
They  use  the  Z-80  mi- 
croprocessor which  is 


widely  regarded  as  the  standard  of  the  future.  So  you're 
in  the  technical  fore  with  the  Z-2. 

BROAD  SOFTWARE/PERIPHERALS  SUPPORT 

Since  the  Z-2  uses  the  Z-80,  your  present  8080  soft- 
ware can  be  used  with  the  Z-2.  Also,  Cromemco  offers 
broad  software  support  including  a  monitor,  assembler, 
and  a  BASIC  interpreter. 

The  Z-2  uses  the  S-100  bus  which  is  supported  by  the 
peripherals  of  dozens  of  manufacturers.  Naturally,  all 
Cromemco  peripherals  such  as  our  7-channel  A/D  and 
D/A  converter,  our  well-known  BYTESAVER  with  its 
built-in  PROM  programmer,  our  color  graphics  interface, 
etc.,  will  also  plug  into  the  S-100  bus. 

LOW,  LOW  PRICE 

You'll  be  impressed  with  the  Z-2's  low  price,  technical 
excellence  and  quality.  So  see  it  right  away  at  your 
computer  store — or  order  directly  from  the  factory. 

Z-2  COMPUTER  SYSTEM  KIT  (MODEL  Z-2K)  (includes 
4  MHz  /xP  card,  full-length  21 -card-slot  motherboard, 
power  supply,  one  card  socket  and  card-guide  set,  and 
front  panel;  for  rack  mounting) $595. 

Z-2  COMPUTER  SYSTEM  ASSEMBLED  (MODEL  Z-2W) 
(includes  the  above  as  well  as  all  21  sockets  and  card 
guides  and  a  cooling  fan;  for  rack  mounting ). .  .$995. 


TV  DAZZLER 


To  make 
your  computer 

more  useful- 


i 


a 


a  wide  choice  of 
memory,  I/O,  CPU 


Your  computer's  usefulness  de- 
pends on  the  capability  of  its  CPU, 
memories,  and  I/O  interfaces,  right? 

So  here's  a  broad  line  of  truly 
useful  computer  products  that  lets 
you  do  interesting  things  with  your 
Cromemco  Z-1  and  Z-2  computers. 
And  with  your  S-1 00-compatible  Al- 
tairs  and  IMSAIs,  too. 

CPU 

•  Z-80  MICROPROCESSOR  CARD. 
The  most  advanced  p.P  card  avail- 
able. Forms  the  heart  of  our  Z-1 
and  Z-2  systems.  Also  a  direct  re- 
placement for  Altair/IMSAI  CPUs. 
Has  4-MHz  clock  rate  and  the  power 
of  the  Z-80  fiP  chip.  Kit  (Model  ZPU- 
K):  $295.  Assembled  (Model  ZPU- 
W):  $395. 

MEMORIES 

•  16K  RAM.  The  fastest  available. 
Also  has  bank-select  feature.  Kit 
(Model  16KZ-K):  $495.  Assembled 
(Model  16KZ-W):  $795. 

•  4K  RAM.  Bank-select  allows  ex- 
pansion to  8  banks  of  64K  bytes 
each.  Kit  (Model  4KZ-K):  $195.  As- 
sembled (Mode!  4KZ-W):  $295. 

•  THE  BYTESAVER  — an  8K  capa- 
city  PROM  card   with   integral  pro- 


grammer. Uses  high-speed  2708  eras- 
able PROMs.  A  must  for  all  com- 
puters. Will  load  8K  BASIC  into  RAM 
in  less  than  a  second.  Kit  (Model 
BSK-0):  $145.  Assembled  (Model 
BSW-0):  $245. 

•  16K  CAPACITY  PROM  CARD.  Ca- 
pacity for  up  to  16K  of  high-speed 
2708  erasable  PROM.  Kit  (Model 
16KPR-K):  $145.  Assembled  (Model 
16KPR-W):$245. 

I/O  INTERFACES 

•  FAST  7-CHANNEL  DIGITAL- 
ANALOG  I/O.  Extremely  useful 
board  with  7  A/D  channels  and  7 
D/A  channels.  Also  one  8-bit  par- 
allel I/O  channel.  Kit  (Model  D  + 
7A-K):  $145.  Assembled  (Model  D 
+  7A-W):  $245. 

•  TV  DAZZLER.  Color  graphics  in- 
terface. Lets  you  use  color  TV  as  full- 
color  graphics  terminal.  Kit  (Model 
CGI-K):  $215.  Assembled  (Model 
CGI-W):  $350. 

•  DIGITAL  INTERFACE  (OUR  NEW 
TU-ART).  Interfaces  with  teletype, 
CRT  terminals,  line  printers,  etc.  Has 
not  one  but  two  serial  I/O  ports  and 
two  8-bit  parallel  I/O  ports  as  well 
as  10  on-board   interval  timers.   Kit 


(Model  TRT-K):  $195.  Assembled 
(Model  TRT-W):  $295. 
•  JOYSTICK.  A  console  that  lets 
you  input  physical  position  data  with 
above  Model  D  +  7  A/D  card.  For 
games,  process  control,  etc.  Con- 
tains speaker  for  sound  effects.  Kit 
(Model  JS-1-K):  $65.  Assembled 
(Model  JS-1-W):  $95. 

PROFESSIONAL  QUALITY 

You  get  first-class  quality  with 
Cromemco. 

Here  are  actual  quotes  from  ar- 
ticles by  independent  experts:  "The 
Cromemco  boards  are  absolutely 
beautiful"  .  .  .  "The  BYTESAVER  is 
tremendous"  .  .  .  "Construction  of 
Cromemco  I/O  and  joystick  are  out- 
standing" .  .  .  "Cromemco  periph- 
erals ran  with  no  trouble  whatso- 
ever." 

Everyone  agrees.  Cromemco  is 
tops. 

STORES/MAIL 

So  count  on  Cromemco.  Look 
into  these  Cromemco  products  at 
your  store.  Or  order  by  mail  from 
the  factory. 

We  wish  you  pleasure  and  suc- 
cess with  your  computer. 


rj|  Cromemco 


incorporated 
Specialists  in  computers  and  peripherals 
2432  CHARLESTON  RD.,  MOUNTAIN  VIEW,  CA  94043  •  (415)964-7400 


Circle  2  on  inquiry  card. 


In  the  Queue 


JULY  1977 
Volume  2 


BITE 

Number  7 


12 

36 

52 

64 

92 

118 

122 

126 

42 
44 
72 
78 
82 
96 

4 


Foreground 


HOW  TO  COMPUTERIZE  YOUR  MODEL  RAILROAD 

Applications— Brown 
THIS  CIRCUIT  MULTIPLIES 

Arithmetic  Hardware— Hall 
THE  TV  OSCILLOSCOPE 

Hardware— Barbier 
SPEECH  RECOGNITION  FOR  A  PERSONAL  COMPUTER  SYSTEM 

Peripherals— Boddie 
A  MACHINE  CODE  RELOCATOR  FOR  THE  8080 

Software— Zol  man 
HOW  FAR-WHICH  WAY? 

Applications— Pittet 
ADD  CURSOR  CONTROL  TO  YOUR  TVTII 

Hardware— McGahee 
GIVING  KIM  SOME  FANCY  JEWELS 

Hardware— Grater 


Background 


CONDENSED  REFERENCE  CHART  FOR  THE  6800 

Reference  Materials— Borrmann 
ATRAIN  CONTROL  DISPLAY  USING  THE  LSI-11  MICROCOMPUTER 

Applications— Hart-Badger 
HOW  TO  PICK  UP  A  DROPPED  BIT 

Error  Theory— Maurer 
GIVE  YOUR  MICRO  A  MEGABYTE 

System  Design— Grappel 
AN  INTRODUCTION  TO  NUMBERS 

Software— Simmons 
BASICally  BASIC 

Software— Baker 

Nucleus 


124 

Classified  Ads 

128 

PAPERBYTES  Forum 

142, 

166 

Programming  Quickies 

151 

Book  Reviews 

155, 

158 

BYTE's  Bits 

156 

PAPERBYTES:  Floppy  Disk 
Object  Code 

160 

Clubs,  Newsletters 

176 

BOMB 

176 

Reader  Service 

In  This  BYTE 
6  This  Elephant  Never  Forgets 

1 0  Letters 

25  West  Coast  Computer  Faire 

32,  115,  129  What's  New? 
34,  150  Technical  Forum 

41  Ask  BYTE 

57  BYTE's  Bugs 

90  Desk  Top  Wonders:  Jeu  de 

NIM,  Peutttre? 


Cover:  COMPUTER  ENGINEERING  by  Robert  Tinney 

BYTE  is  published  monthly  by  BYTE  Publications  Inc,  70  Main  St,  Peterborough  NH  03458.  Address  all  mail  except  subscrip- 
tions to  above  address;  phone  (603)  924-7217.  Address  all  editorial  correspondence  to  the  editor  at  the  above  address. 
Unacceptable  manuscripts  will  be  returned  if  accompanied  by  sufficient  first  class  postage.  Not  responsible  for  lost  manu- 
scripts or  photos.  Opinions  expressed  by  the  authors  are  not  necessarily  those  of  BYTE.  Address  all  subscriptions,  change  of 
address.  Form  3579,  and  fulfillment  complaints  to  BYTE  Subscriptions,  PO  Box  361,  Arlington  MA  02174;  phone  (617) 
646-4329. 

Second  class  postage  paid  at  Peterborough  NH  03458  and  at  additional  mailing  offices-USPS  Publication  No.  102410. 
Subscriptions  are  $12  for  one  year,  $22  for  two  years,  and  $32  for  three  years  in  the  USA  and  its  possessions.  Add  $5.50  per 
year  for  subscriptions  to  Canada  and  Mexico.  $25  for  a  one  year  subscription  by  surface  mail  worldwide.  Air  delivery  to  select- 
ed areas  at  additional  rates  available  upon  request.  $25  for  a  one  year  subscription  by  air  delivery  to  Europe,  or  DM  60,—  for  a 
one  year  subscription  through  our  European  distributor  in  Darmstadt. 

Single  copy  price  is  $1 .50  in  the  USA  and  its  possessions,  $2  in  Canada  and  Mexico,  and  $3  eleswhere,  or  DM  7,—  through  our 
European  distributor  in  Darmstadt. 

Foreign  subscriptions  and  sales  should  be  remitted  in  United  States  funds.  Printed  in  United  States  of  America.  Entire  con- 
tents copyright   ©  1977  by  BYTE  Publications  Inc.  All  rights  reserved. 


PUBLISHERS 

Virginia  Peschke 

Manfred  Peschke 

EDITOR  IN  CHIEF 

Carl  T  Helmers  Jr 

PRODUCTION  MANAGER 

Judith  Havey 

CIRCULATION  MANAGER 

Gregory  Spitzfaden 

ASSISTANT  PUBLISHER 

Debra  Boudrieau 

EDITOR 

Christopher  P  Morgan 

CO-OP  EDITOR 

Raymond  Cote 

PRODUCTION  EDITORS 

Karen  Gregory 

Nancy  Salmon 

EDITORIAL  ASSISTANT 

Ingrid  Nyland 

PRODUCTION  ASSISTANT 

Cheryl  Hurd 

ADVERTISING  ASSISTANT 

Noreen  Bardsley 

SUBSCRIPTIONS 

Kimberly  Barbour 

DEALER  SALES 

Ginnie  F  Boudrieau 

ADVERTISING 

Elizabeth  Alpaugh 

Debra  Boudrieau 

Virginia  Peschke 

CLUBS,  PAPERBYTES 

Peter  Travisano 

TRAFFIC  MANAGER 

Edmond  C  Kelly  Jr 

ART 

Mary  Jane  Frohlich 

Wai  Chiu  Li 

Ellen  Shamonski-Bingham 

SPECIAL  PRODUCTS 

Medellin  Stephens 

Floyd  Rehling 

EXECUTIVE  SECRETARY 

Patricia  Clark 

RECEPTIONIST 

Jacqueline  Earnshaw 

DRAFTING 

Lynn  Malo 

Bill  Morello 

Stephen  Kruse 

TYPOGRAPHY 

Custom  Marketing  Resources  Inc 

Goodway  Graphics 

PHOTOGRAPHY 

Ed  Crabtree 

EDITORIAL  CONSULTANT 

Daniel  Fylstra 

ASSOCIATES 

Walter  Banks 

Steve  Ciarcia 

David  Fylstra 

Portia  Isaacson 

FOREIGN  DISTRIBUTOR 

Pan  Atlantic  Computer  Systems  GmbH 

Frankfurter  Str  78 

D61  Darmstadt,  West  Germany 

(0  61  51)  29  29  23 


STATION 
3 


In  This    EUI 


Model  railroading  can  give  the  com- 
puter hobbyist  an  action  packed  com- 
puter application.  Before  tackling  the 
job,  however,  it  is  important  to  have  a 
firm  understanding  of  what's  involved 
in  the  design  of  a  model  railroad.  In 
his  article,  How  to  Computerize  Your 
Model  Railroad,  David  C  Brown  ex- 
plains in  detail  the  problems  faced  by 
the  model  railroader  and  points  to 
ways  in  which  they  can  be  solved.  He 
then  goes  on  to  cover  the  requirements 
for  microprocessor  interfaces  to  the 
model  railroad  and  some  thoughts  on 
the  software  of  an  operating  system  to 
give  realism  to  the  model. 

Sometimes  a  small  amount  of  hard- 
ware can  speed  up  software  con- 
siderably. A  perfect  example  is  pro- 
vided by  Tom  Hall  in  his  article  which 
shows  how  This  Circuit  Multiplies. 
This  circuit  is  a  hardware  multiplier 
which  takes  8  bit  operands  and  replies 
(ten  clock  periods  later)  with  a  16  bit 
product.  Here  is  an  example  of  putting 
an  inner  loop  into  hardware,  thereby 
speeding  up  an  operation. 

The  model  railroad  is  an  ideal  way 
for  the  personal  computing  enthusiast 
to  enter  the  fascinating  world  of  real 
time  control:  such  a  system  is  realistic 
but  manageable.  Authors  Jack  Hart 
and  Ed  Badger  show  you  how  they  did 
it  in  A  Train  Control  Display  Using  the 
LSI-11  Microcomputer. 


page  44 

Sometimes  a  bit  of  serendipity  falls 
out  of  an  application  or  project.  Ken 
Barbier  describes  one  such  case  in  the 
form  of  his  technique  of  using  a 
television  display  circuit's  ability  to 
generate  a  raster  with  various  syn- 
chronous patterns  to  debug  and  verify 
its  operation.  Read  The  TV 
Oscilloscope. 

There  are  many  ways  to  make  a 
computer  talk,  but  how  do  you  get  it 
to  listen?  Speech  Recognition  for  a 
Personal  Computer  System  discusses 
a  topic  which  has  fascinated  and 
frustrated  experimenters  for  years. 
Author  James  Boddie  of  Bell  Labs  (the 
pioneer  researchers  in  the  field)  covers 
the  history  of  the  subject  and  presents 
a  practical  system  which  can  be  realized 
by  a  personal  computing  experimenter. 

Real  world  systems  may  not  be 
perfect,  yet  programming  demands 
perfection.  (If  we  drop  a  bit  in  one 
machine  instruction,  it  becomes  an- 
other instruction  altogether.)  As  a 
background  discussion  of  a  large  sub- 
ject, W  Douglas  Maurer  presents  some 
information  on  How  to  Pick  up  a 
Dropped  Bit  using  some  of  the  tech- 
niques of  error  detection  and  cor- 
rection. 

What's  a  sure  cure  for  memory 
megalomania?  Why,  Give  Your  Micro 
a  Megabyte  as  outlined  in  Robert 
Grappel's  short  tutorial  on  some  large 
memory  design  techniques  which  will 
prove  adaptable  to  microcomputer 
systems.  There  should  be  virtually 
no  reason  to  complain  if  his  ideas  were 
put  into  practice  more  universally. 


An  Introduction  to  Numbers,  by 
Webb  Simmons,  serves  as  an  introduc- 
tion to  the  concepts  of  fixed,  scaled 
and  floating  point  numbers.  Here 
you'll  find  some  basic  forms  for 
each  type,  how  the  forms  differ  from 
each  other,  and  how  each  can  be  used. 

If  you've  ever  been  frustrated  by 
the  drudgery  involved  in  relocating 
machine  language  programs  with  noth- 
ing but  toggle  switches,  then  Leor 
Zolman's  A  Machine  Code  Relocator 
for  the  8080  is  for  you!  Just  enter  six 
key  pieces  of  information  and  the 
program  does  the  rest  automatically, 
even  fixing  up  all  your  address 
references. 

For  beginners  first  learning  about 
computers,  we  often  get  requests  for 
some  basic  information.  In  BASICally 
BASIC,  Robert  Baker  gives  an  in- 
formal introduction  to  the  nature  of 
the  BASIC  language  and  its  uses  in 
programming.  Finding  out  what  a 
typical  BASIC  can  do  is  a  good 
starting  point  in  your  personal  evalua- 
tion of  products  available  in  the  per- 
sonal computing  marketplace. 

Given  latitude  and  longitude  of  two 
points  on  the  earth,  how  do  you 
calculate  the  distance  and  bearing?  If 
you  use  a  little  BASIC  program  by 
Rene  Pittet,  you  can  answer  the  ques- 
tion of  How  Far  —  Which  Way?  using  a 
small  processor. 

If  you  have  a  Southwest  Technical 
Products'  TVT  II,  there  is  a  simple 
circuit  that  you  can  add  that  will  give 
you  manual  and  computer  control 
over  the  cursor's  movement,  erase  and 
bell  functions.  In  his  article,  Add 
Cursor  Control  to  Your  TVT  II, 
Brother  Thomas  McGahee  describes 
this  simple  circuit  which  can  be 
attached  to  a  TVT  II. 

Poor  KIM.  If  one  puts  KIM-1  inside 
a  fancy  case,  the  built-in  jewels  of  key- 
board and  displays  get  hidden.  But 
Robert  Grater  comes  to  the  rescue  by 
Giving  KIM  Some  Fancy  Jewels,  which 
consist  of  a  remote  set  of  displays 
connected   to  the  processor  by  cable. 


POWER. 


IMSA1  Introduces  the  Megabyte  Micro™ 


The  Megabyte  Memory 

Until  today,  the  largest  memory  you  could 
fit  and  address  in  a  single  microcomputer 
CPU  was  65K. 

Now,  IMSA1  presents  an  incredible 
memory  system  for  micros  16  limes  more 
powerful  than  yesterday's  best. 

Imagine,  a  full  megabyte  of  power  from 
sixteen  65K  RAM  boards. 

And,  to  control  all  this,  the  IMSA1 
Intelligent  Memory  Manager  (IMM),  the 
super  control  board. 

You  can  write  protect  blocks  through- 
out the  full  megabyte.  Or,  map  in  16K  blocks. 

Plus,  preset  1 6  mapping  configurations 
with  protect  for  high  speed  transfer  or  rapid 
change. 

All  interrupts  are  fully  vectored,  and 
there's  an  interrupt  if  an  attempt  is  made  to 
write  into  protected  memory. 

There's  even  a  real  "time  of  day"  clock. 

65K,32Kandl6KRAM 
Boards 

Until  today,  the  most  memory  you  could 
plug  into  a  single  slot  was  16K. 


Now,  IMSAI  presents  memory  boards 
in  astonishing  multiples  of  sixteen:  65K, 
32K  and  I6K  low  power,  dynamic  RAM 
Boards.  They  can  be  used  in  any  S- 100  bus 
computer  individually  or  in  combination 
to  form  conventional  systems  up  to  65K 
bytes. 

Every  board  is  fast.  With  "hidden 
refresh"  and  no  "wait  state." 

The  Complete  Megabyte 
Microcomputer  System 

The  IMSAI  Megabyte  Micro™  is  only  part 
of  the  story.  The  full  system  can  include 
dual  floppy  disks,  terminals,  plotters, 
printers  and  tape  cassettes. 

IMSAI  also  offers  the  finest  high  level 
and  peripheral  software  available.  Paper 
tape  and  Tape  Cassette  I/O  and  super  Disk 
Operating  Systems.  Plus,  BASIC  and  Disk 
BASIC  with  more  high  level  languages 
coming. 

Until  today,  the  microcomputer's 
potential  was  just  something  you  talked 
about. 

Now,  you  can  put  it  to  work.  Powerfully. 

Circle  3  on  inquiry  card. 


GENTLEMEN: 

I'm  power  hungry! 

□  Send  65K  RAM  Board  Kit  $2599  □  Assembled  $3899 

□  Send  32K  RAM  Board  Kil  $749    []  Assembled  $  1099 

□  Send  I6K  RAM  Board  Kil  $449    Q  Assembled  $679 

□  Send  IMM  ROM  Control  Kit  $299    □  Assembled  $399 

□  Send  IMM  EROM  Control  Kit  $499  fj  Assembled  $699 

□  Send  full  catalog  $1.00 

Check/MO  enclosed.  Amt.  $ 

Charge  my:  □  B AC  [J  M  /C 

# Exp.  Date: 

Sig 

Q  Send  name  of  my  nearest  IMSAI  dealer 

Name  


Company  _ 

Address^ 

City 


State/Zip  _ 


® 


IMSAI  Manufacturing  Corporation 

14860  Wicks  Blvd. 

San  Leandro,  CA  94577 

(415)  483-2093    TWX  910-366-7287 


Editorial 


*   • 


•■    w 


#■   * 


This  Elephant  Never  Forgets 


By  Carl  Helmers 


In  a  press  release  dated  March  9  1977, 
Texas  Instruments  Inc  made  it  official: 
a  commercial  bubble  memory  product  is 
now  available  for  general  use,  initially  in 
sample  quantities  priced  at  $200  per  chip. 
The  device  is  the  TBM0103,  a  single  chip 
92,304  bit  storage  element  composed 
functionally  of  144  shift  registers  with 
641  bits  per  register.  (Internally,  according 
to  Tl,  there  are  157  registers,  but  the  large 
size  of  the  chip  carries  with  it  the  attendant 
probabilities  of  defects,  so  discretionary 
manufacturing  steps  are  used  to  connect 
144  good  registers  per  package.)  The  device 
has  a  complicated  mechanical  structure 
which  includes  two  permanent  magnet 
bias  field  elements,  two  orthogonal  coils 
which  modulate  the  bias  field  to  produce 
a  net  rotating  magnetic  field  in  the  garnet 
film  bubble  chip,  and,  of  course,  a  magnetic 
shield  to  isolate  the  chip  from  external  stray 
magnetic  fields.  The  dynamic  data  character- 
istics of  the  chip  are  a  bit  transfer  rate  of 
50,000  bits  per  second  and  an  access  time 
of  4  ms  setup  prior  to  transferring  a  144  bit 
word  of  data  into  or  out  of  the  device. 
Conceptually,  figure  1  illustrates  what  one 
of  these  memories  looks  like  to  a  designer  or 
programmer.  This  figure  was  constructed 
based  on  the  limited  information  about 
overall  characteristics  in  the  press  release. 
The  procedure  for  writing  a  144  bit  word 


Continued  on  page  58 
6 


BUY  YOUR 
COMPUCOLOR8001 

FROM  THESE 
DEALERS. 


ARIZONA 

Phoenix: 

Phoenix  Bylc  Shop  West 
12654  N.  28th  Dr. 

(602)  942-7300 

Tempe: 

Tempe  Byte  Shop  East 
813  N.  Scottsdale  Rd. 

(602)894-1129 

Tucson: 

Byte  Shop  of  Tucson 
2612  E.Broadway 

(602)327-4579 

CALIFORNIA 

Lawndale: 

Byte  Shop  of  Lawndale 
16508  Hawthorne  Blvd. 

(213)371-2421 

Orange: 

Computer  Mart  of  Los  Angeles 
625  W.  Kalella.  No.  10 

(714)633-1222 

San  Diego: 

The  Computer  Center 
8205  Ronton  Rd. 

(714)292-5302 

San  Francisco: 

The  Computer  Store 
1093  Mission  St. 

(415)431-0640 

San  Jose: 

Amco  Electronics 
414  S.  Bascom  Ave. 

(408)  998-2828 

San  Jose: 

Byte  Shop 

155  Blossom  Hill  Rd. 

(408)  226-8383 

Van  Nuys: 

Computer  Components 
5848  Scpulvcda  Blvd. 

(213)786-7411 

CONNECTICUT 

Windsor  Locks: 

The  Computer  Store 
63  S.  Main  St. 

(203)627-0188 

FLORIDA 

Coral  Gables: 

Sunny  Computer  Stores 
1238A  S.Dixie  Hwy. 

(305)661-6042 

Tampa: 

Microcomputer  Systems 
144  S.  Dale  Mabry  Hwy. 

(813)879-4301 

GEORGIA 

Atlanta: 

Atlanta  Computer  Man 
5091-BBufordHwy. 

(404)  455-0647 

HAWAII 

Honolulu: 

Compact  Computers 
P.O.  Box  10096 

(808)373-2751 

ILLINOIS 

Champaign: 

1  he  Numbers  Racket 
518  E.  Green  St. 

(217)352-5435 

Evanston: 

Itty  Bitty  Machine 
1316  Chicago  Ave. 

(312)328-6800 

Park  Ridge: 

Chicago  Computer  Store 
157TalcottRd..Hwy.62 

(312)823-2388 

INDIANA 

Indianapolis: 

Home  Computer  Shop 
10447  Chris  Dr. 

(317)894-3319 

MARYLAND 

Rockville: 

Computer  Workshop.  Inc. 
5709  Frederick  Ave. 

(301)468-0455 

MASSACHUSETTS 

Burlington: 

'Hie  Computer  Store 
120  Cambridge  St. 

(617)272-8770 

MICHIGAN 

Troy: 

General  Computer  Company 
2017  Livernois 

(313)362-0022 

MINNESOTA 

Minneapolis: 

Cost  Reduction  Services 
3 142  Hennepin  Ave.  So. 

(612)822-2119 

MISSOURI 

Kansas  City: 

Computer  Workshop  of  Kansas  City 
6903  Blair  Rd. 

(816)741-5055 

NEW  JERSEY 

Iselin: 

"The  Computer  Mart 
501  Route  27 

(201)283-0600 

NEW  YORK 

East  Meadow: 

"The  Computer  Mart  of  Long  Island 
2070  Front  St. 

(516)794-0510 

New  York: 

The  Computer  Mart 
314  5th  Ave. 

(212)279-1048 

OHIO 

Columbus: 

Computervision 
894  W.  Broad  St. 

(614)228-2477 

SOUTH  CAROLINA 

Columbia: 

Byte  Shop 
2018  Greene  St. 

(803)771-7824 

TEXAS 

Houston: 

Communications  Center 
7231  Fondren 

(713)774-9526 

Richardson: 

The  Micro  Store 

634  S.  Central  Expressway 

(214)231-1096 

WASHINGTON 

Seattle: 

Retail  Computer  Store 
410  NE  72nd  St. 

(206)524-4101 

WISCONSIN 

Beloit: 

Austin  Computers 
1835  Northgate 

(608)  365-6096 

Watertown: 

General  Precision  Electronics 
207  Rhine  St. 

(414)261-8148 

Compucolor  Corporation 


NOW  $2750. 
AMERICA'S  LOWEST-PRICED 
PERSONAL  COMPUTER  SYSTEM 
WITH  COLOR  VECTOR  GRAPHICS. 


By  taking  advantage  of  the 
new  technologies  available  to 
the  industry  today,  we've  con- 
sistently been  able  to  give  you 
one  of  the  best  prices  on  the 
market.  Now  because  of  great 
response,  we  can  give  you  the 
best  price.  You  can  now  buy 
the  Compucolor  8001  for  the 
reduced  price  of  $2750.  A  com- 
plete stand-alone  system  with 
expanded  graphics  software 
for  plotting  points,  vectors  and 
bargraphs  on  a  160  x  192 
addressable  grid— in  color. 
Eight  independent  background 
and  foreground  colors. 

The  Compucolor  8001  has 
an  Intel  8080  CPU,  34  I/O 
ports  and  a  color  display  with 
an  effective  band  width  of  75 
MHZ  compared  to  5  MHZ  for 
standard  TV  sets.  In  fact  the 
Compucolor  is  the  only  totally 
integrated  system  on  the  mar- 
ket which  includes  a  color 
display.  You  can  also  have  spe- 
cial options  for  the  Compucolor 
8001  right  now,  including:  Mini 
Disk  Drives  for  extra  memory, 
light  pens  and  a  variety  of 
special  keyboard  features. 
BASIC  8001  Is  Easy  To  Learn. 
Compucolor's  BASIC  8001  is 


a  conversational  programming 
language  which  uses  English- 
type  statements  and  familiar 
mathematical  notations.  It's 
simple  to  learn  and  easy  to  use, 
too.  Especially  when  it  comes 
to  intricate  manipulations  or 
expressing  problems  more 
efficiently.  The  BASIC  8001 
Interpreter  runs  in  ROM  mem- 
ory and  includes  26  statement 
types,  18  mathematical  func- 
tions, 9  string  functions  and  7 
command  types  for  executing, 
loading,  saving,  erasing,  con- 
tinuing, clearing  or  listing  the 
program  currently  in  core. 
Expandable  Memory  To  64K. 
The  Compucolor  8001  has  UK 
bytes  of  non-destructible  read- 
only memory  which  handles 
the  CPU  and  CRT  operating 
systems  as  well  as  BASIC 
8001.  Sockets  are  in  place  for 
an  additional  21K  of  EPROM/ 
MROM  memory.  The  Random 
Access  Main  Memory  has  8K 
bytes  for  screen  refresh  and 
scratch  pad,  8K  bytes  for  user 
workspace  and  room  for  16K 
bytes  of  additional  user  work- 
space. The  Compucolor  also 
comes  complete  with  a  conve- 
nient mass  storage  device, 


Floppy  Tape  Memory.  It's  an 
8-track  continuous  loop  tape 
system,  with  a  Baud  rate  of 
4800  and  an  extra  storage 
capacity  of  up  to  1024K  bytes 
per  tape. 

Color  Graphics  At 

Alphanumeric  Black  And 
White  Prices. 
That's  what  we're  becoming 
famous  for,  and  thanks  to  the 
tremendous  response  to  the 
Compucolor  8001,  we've  been 
able  to  reduce  our  price  even 
lower— to  $2750.  Look  over 
our  dealer  listing  on  the  adja- 
cent page  for  the  dealer  nearest 
you.  Then  drop  by  for  a  dem- 
onstration. And  while  you're 
checking  out  the  Compucolor 
8001,  check  out  your  dealer's 
financing  plan.  He  can  help  you 
turn  a  good  deal  into  a  good 
deal  more. 

Compucolor  Corporation, 
P.O.  Box  569,  Norcross, 
Georgia  30091. 

Compucolor  Corporation 


Pirrlp  4  nn  innuirv  rarii 


Sol  Terminal  Computer 


ilMvolo'.PT 


• 


K 


^m 


'To  do  real  work  with  any  computer,  big  or  small,  it  takes 
a  complete  system.  That's  one  of  the  nice  things  about  the 
Sol-20.  It  was  built  from  the  ground-up  as  the  heart  of  three 
fixed  price  computer  systems  with  all  the  peripheral  gear  and 
software  included  to  get  you  up  and  on  the  air. 

Sol  System  I  costs  just  $1649  in  kit  form  or  S212°  fully 
burned  in  and  tested.  Here's  what  you  get:  a  Sol-20  with  the 
SOLOS  personality  module  for  stand  alone  computer  power. 
an  8192  word  memory,  a  12"  TV  video  monitor,  a  cassette 
recorder  with  BASIC  software  tape  and  all  necessary  cables. 

Sol  System  II  has  the  same  equipment  plus  a  larger 


r«  I v**.< 


'V:v' 


',<*<;  * 


eiios 


■  ■ 


capacity  16,384  word  memory.  It  sells  for  S1883  in  kit  form;  S2283  fully  assembled. 

For  even  more  demanding  tasks,  Sol  System  III  features  Sol-20/SOLOS,  a  32,768  word 
memory,  the  video  monitor,  Helios  II  Disk  Memory  System  and  DISK  BASIC  Diskette.  Price, 
$4237  in  kit  form,  S5037  fully  assembled  and  tested. 

And  remember,  though  we  call  these  small  or  personal  computer  systems,  they  have  more 

power  per  dollar  than  anything  ever 
offered.  They  provide  performance  com- 
parable with  mini-computer  systems  priced 
thousands  of  dollars  more. 

The  Small  Computer 
Catalog  for  the  rest  of  the  real 
computer  system  story. 

Visit  your  local  computer  store  for 
a  copy  of  our  full)  illustrated  22  page  cata- 
log. Or  you  may  write  or  call  us  if  more 
convenient.  Please  address  Processor 
Technology,  Box  P.  620(1  Hollis  Street. 
Emervville.  CA  94608.  (415)652-8080. 


>h    %  i- 


The  fuivtion.il  K\m;\  of  So 
nwre  than  skin  cioep.  A  look  inside  n 
of  design  and  sturxft  construction. 


S\  stems  i> 


Corporation  i#  # 


M>W&M 


See  Sol  here 


ALABAMA 
Birmingham: 

1CP.  Computcrland 
(205)979-0707 

ARIZONA 

Phoenix: 

Bvte  Shop  Phoenix 

(602)442-7300 

Tempe: 

Byte  Shop  Tempe 

(602)894-1129 

Tucson: 

Bvle  Shop  Tucson 

f 602)  327-4579 

CALIFORNIA 
Berkeley: 
The  Byte  Shop 
(415)845-6366 

Citrus  Heights: 
Byte  Shop 
Computer  Store 
(916)961-2983 

Costa  Mesa: 
Computer  Center 

171-1)  (.46-0221 

Fresno: 

Data  Consultants,  Inc. 

(209)431-6461 

Fullerton: 
Bits'N  Bytes 
(714)879-8386 

Lawndale: 
The  Byte  Shop 
(213)371-2421 

Mountain  View: 
The  Byte  Shop 
(415)969-5464 
Digilal  Deli 
(415)961-2828 

Orange: 

The  Computer  Marl 

(714)633-1222 

Palo  Alto: 
The  Byte  Shop 
(415)327-8080 

Pasadena: 

Byte  Shop 
(213)684-3311 

San  Francisco: 
Byte  Shop 

(415)421-8686 

The  Computer  Store 
of  San  Francisco 

14151431-0640 

San  Jose: 

The  Byte  Shop 

(408)377-4685 

The  Computer  Room 

(408)226-8383 

Circle  5  on  inquiry  card. 


San  Rafael: 
The  Byte  Shop 
(415)457-9311 

Santa  Clara: 
The  Bvte  Shop 
(408)249-4221 

Sunnyvale: 
Recreational 
Computer  Centers 
(408)735-7480 

Tarzana: 

Byte  Shop  of  Tarzana 

(213)343-3919 

Walnut  Creek: 
The  Byte  Shop 
(415)933-6252 

Westminster: 
Byle  Shop 
(714)894-9131 

COLORADO 

Boulder: 
Byle  Shop 

(303)449-6233 

FLORIDA 

Coral  Gables: 
Sunny  Computer 
Stores 
(305)661-6042 

Leesburg: 

Delia  Electronics 

(904)357-4244 

Miami: 

Byte  Shop  of  Miami 

(303)264-2983 

Tim  pa: 

Microcomputer 
Systems,  Inc. 
(813)879-4301 

GEORGIA 
Atlanta: 

Atlanta  Computer  Mart 
(404)455-0647 

ILLINOIS 

Champaign: 

The  Numbers  Racket 

(217)352-5435 

Evanston: 

itly  bitty  machine  CO, 

(312)328-6800 

Kankakee: 

Reeves 

Communications 

(815)937-4516 

Lombard: 

itty  bitty  machine  CO. 

(312)620-5808 

INDIANA 
Bloomington: 

The  Data  Domain 

(812)334-3607 


Indianapolis: 
The  Bvle  Shop 
(317)842-2983 
The  Data  Domain 
(317)  251-3139 

West  Lafayette: 
The  Data  Domain 

(317)743-3951 

KENTUCKY 

Louisville: 

The  Data  Domain 

(502)456-5242 

MICHIGAN 

Ann  Arbor: 

The  Computer  Store 

of  Ann  Arbor 

(313)995-7616 

Royal  Oak: 
Computer  Marl 
of  Royal  Oak 
(313)576-0900 

Troy : 

General  Computer 

Store 

(313)362-0022 

NEW  JERSEY 
Hoboken: 

Hoboken  Computer 
Works 
(201)420-1644 

Iselin: 

The  Computer  Marl 

of  New  Jersey 

(201)  283-0600 

NEW  YORK 
East  Meadow.  L.  [.: 
The  Computer  Mart 
of  Long  Island 
(516)794-0510 

Mollis: 

Synchro  Sound 
Enterprises 

(212)359-1489 

Middle  Island: 

The  Computer  Shoppe 

(516)732-3086 

New  York: 
Audio  Design 
Electronics 
(212)226-2038 

The  Computer  Mart 
of  New  York 
(212)686-7923 

White  Plains: 

The  Computer  Corner 

1914)949-3282 

OHIO 
Columbia: 

Cybershop 
(614)239-8081 

OKLAHOMA 
Oklahoma  City: 
High  Technology 
(405)842-2021 

OREGON 
Beaverton: 

Byle  Shop 
Computer  Store 
(503) 644-2686 


Eugene: 

The  Real  Oregon 

Computer  Co. 

(503)484-1040 

Portland: 
Byle  Shop 
Computer  Store 

(503)223-3496 

RHODE  ISLAND 

Warwick: 

Computer  Power.  Inc. 

(401)738-4477 

SOUTH  CAROLINA 
Columbia: 

Byle  Shop 

(803)771-7824 

TENNESSEE 
Kingsport: 
Microproducls  & 
Systems 
(615)245-8081 

TEXAS 
Houston: 

Byte  Shop 
(713)977-0664 

Computertex 
(713)526-3456 
Interactive  Computers 

(713)772-5257 

Richardson: 
The  Micro  Store 
(214)231-1096 

VIRGINIA 
McLean: 

The  Computer 

Systems  Store 
(301)460-3634 

Reston: 

Media  Reactions,  Inc. 

(703)471-9330 

WASHINGTON 
Bellevue: 
Byle  Shop 
Computer  Store 
(206)746-0651 

Seattle: 
The  Retail 
Computer  Store 
(206)524-4101 

WISCONSIN 
Milwaukee: 
The  Milwaukee 
Computer  Store 
(414)259-9140 


CANADA 
Oltawa,  Ontario: 
Trin  Ironies 

(613)236-7767 

Toronto,  Ontario: 

First  Canadian 

Computer  Store,  Ltd. 

(4161482-8080 

The  Computer  Place 

(416)598-0262 

Vancouver.  B.  C: 
Pacific  Computer  Store 
(604)438-3282 


IBj^R^^y 


Letters 


ALTAIR  (S-100)  BUS  QUESTION 

I  am  using  an  8080  based  micro- 
processor system  to  control  a  video 
imaging  system.  A  number  of  circuit 
boards  are  in  use  or  being  built  which 
plug  into  the  Altair  style  S-100  bus  and 
work  with  video.  Some  of  these  boards 
require  video  sync  signals  (horizontal 
drive,  vertical  drive,  composite  blanking, 
composite  sync  and  subcarrier).  I  would 
like  to  buffer  these  and  put  them  on  the 
bus  as  TTL  signals.  Could  you  please 
describe  the  known  uses  to  date  of  the 
uncommitted  pins  of  the  Altair  style 
S-100?  I  am  looking  for  suggestions  of  a 
standardized    place    to    put   these    five 

signals. 

Carl  Geiger 

Onativia  Crossing 

LaFayette  NY  13084 

Can  any  readers  supply  an  answer? 
One  place  to  ask  your  question  would  be 
to  call  the  engineering  departments  of 
various  companies  which  make  peripher- 
als for  the  Altair  bus. 

ON  PRINTERS 

On  April  1  1  977,  volume  2  number  4 
arrived  with  the  fine  article  by 
M  S  McNatt.  I  look  forward  to  the  next 
issue  with  the  interfacing  information. 
I  truly  believe  that  this  is  a  most  over- 
looked situation:  the  use  of  Baudot 
machines  with  the  small  computer.  It 
would  appear  that  many,  many  more 
people  would  be  interested  in  the  small 
computer  if  there  was  some  method  of 
retaining  ASCII  throughout  the  computer 
except  in  the  use  of  the  Baudot  machine 
for  input  and  output. 

I  must,  however,  take  issue  with  the 
noise  and  smell  of  the  Model  15. 
A  Model  15  that  is  properly  lubricated 
and  adjusted,  with  its  cover  in  place, 
should  be  something  other  than  noisy; 
the  cover  should  shield  the  owner  from 
smell,  also.  If  smoke  comes  out  of  the 
machine,  something  is  wrong! 

I  note  that  Mr  McNatt  did  not  men- 
tion the  Western  Union  strip  printers; 
the  model  number  does  not  come  to 
mind,  but  I  believe  that  they  were  2-B. 
I  saw  an  advertisement  on  this  type  of 
machine  and  I  have  reason  to  believe 
that  the  keyboard  of  such  a  machine  will 
mate  with  the  typing  reperforator  which 
usually  (to  my  knowledge)  comes  with- 
out a  keyboard. 

Also,  there  is  the  Friden  Flexowriter. 
My  law  office  has  a  battery  of  those 
machines.  The  first  one  was  acquired  in 
1958  and  it  clatters  and  bangs  happily 
all  day  long.  (Flexowriters  are  generally 
noisy,  particularly  the  FL  and  SDS 
models.)    Why   is   there   not   mention  of 


10 


these  machines?  They  are  extremely 
sturdy  and  it  is  my  understanding  that 
one  can  still  get  maintenance  for  them. 
Many  have  input  and  output  jacks  or 
plugs. 

Lucius  B  Dabney  Jr 

POB947 

Vicksburg  MS  39180 

A  way  of  clucking  the  issue  of  your 
last  question  would  be  to  point  to  the 
title  of  the  article:  "A  Guide  to  Baudot 
Teletypes. "  As  for  oil  and  smoke, 
Mr  McNatt's  caricature  of  the  Model  15 
certainly  fits  my  remembrances  of  using 
one  on  the  amateur  radio  bands  when  I 
was  in  college  .  .  .  C  H 

DOES  ANYONE  HAVE  THE  LATEST 
ON  8080  FORTRAN? 

Nine  months  ago,  when  I  began  to 
get  serious  about  my  own  microcom- 
puter, everybody  was  promising  a 
FORTRAN  compiler  "just  around  the 
corner."  A  major  manufacturer  promised 
a  FORTRAN  compiler  "soon"  which 
degrades  to  "early  1977."  Now  they 
don't  mention  FORTRAN  in  their  adver- 
tisements. As  time  goes  on  we  hear  less 
and  less  of  a  FORTRAN  compiler.  Here 
I  sit  with  40  K,  access  to  timesharing  and 
a  pile  of  FORTRAN  programs  I  can't  use. 
I  am  a  user,  not  a  hardware  man  or  a 
systems  man.  I  would  like  to  compile 
these  and  other  FORTRAN  programs 
one  way  or  another  and  get  on  with 
using  my  machine. 

FORTRAN  may  be  a  pterodactyl 
as  Mr  Lashley  suggests,  but  it  is  a  lan- 
guage commonly  used  to  solve  problems 
by  those  more  interested  in  problem 
solving  than  in  technique.  Some  of  the 
hardware  nuts  would  have  us  scrap  every- 
thing everytime  a  new  chip  came  along. 
In  that  event  we  would  do  nothing  ex- 
cept construct  new  hardware.  Mr  Lashley 


would  have  us  scrap  years  of  training 
everytime  a  new  programming  idea 
appeared.  That's  OK  for  someone 
whose  main  interest  is  learning  new 
languages.  I  don't  feel  we  must  scrap 
FORTRAN  any  more  than  Ma  Bell  has 
scrapped  the  old  phone  system.  Sure, 
there  have  been  problems,  but  by  insisting 
the  new  must  work  compatibly  with  the 
old,  she  has  built  a  good  system  for  the 
user.  The  purists  working  for  Bell  who 
wish  to  scrap  everything  each  time  a  new 
idea  is  discovered  probably  have  ulcers. 
So  let  us  continue  to  build  upon  what 
we  have  and  not  scrap  everything  each 
time  something  new  comes  up.  If  this 
is  the  way  things  are  done,  I'll  be  up- 
dating my  system  far  into  the  future. 
Now,  I'd  like  to  see  some  way  of  con- 
verting that  pile  of  FORTRAN  programs. 

Lawson  T  Pierce 

4891  Songbird  Dr 

Columbus  OH  43229 

LASHING  LASHLEY 

I  nominate  P  M  Lashley  (Feburary 
1977  BYTE,  page  78)  for  the"Cybersnob 
of  the  Year"  award  for  1977.  The  year  is 
young  but  I  think  he  should  get  the  nod; 
no  one  can  possibly  top  his  useless, 
self-serving,  supercilious,  unnecessary 
attack  on  another  man's  worthy  efforts. 

Roxton  Baker 

56  South  Rd 

Ellington  CT  06029 

APL  INTEREST,  AND  CHARACTER 
GENERATION  TUTORIAL  NEEDED 

I  am  writing  in  response  to  letters  in 
the  February  1977  issue  of  BYTE  to  say 
that  I  am  building  a  microprocessor 
based  APL  capability.  I  plan  to  build  an 
APL  CRT  terminal  and  will  want  a 
character   generator   chip.    Since   I    plan 


to  build  my  own  but  have  been  unsuc- 
cessful in  finding  a  construction  and 
theory  article,  BYTE  could  include  such 
an  article,  or  at  least  a  bibliography,  in  a 
future  issue. 

Karl  Gerhard 

264  Taylor  Rd 

Portsmouth  Rl  02871 

APL  INFORMATION  WANTED 

Would  you  please  send  me  some 
information  concerning  implementation 
of  APL  on  microcomputers?  Thank  you 
for  your  consideration. 

Gerry  Wong 

7950  Mercure 

Brossard  Quebec 

CANADA  J4Y 1A8 

Watch  future  issues  of  BYTE. 

COVER  KUDOS 

I  had  to  write,  though  somewhat 
belatedly,  to  comment  on  the  January 
1977  cover  painting  by  Robert  Tinney. 
It  was,  I  must  admit,  a  rather  emotional 
moment  when  I  slid  the  wrapper  off  to 
reveal  a  painting  which  depicts  exactly 
the  feelings  and  aspirations  I  have  held 
for  some  time  now.  The  hope  that  the 
power  of  the  computer,  in  the  hands  of 
all  the  right  people,  can  somehow  change 
the  world  from  the  smog  filled  grey  and 
brown  outside  the  window  into  the 
clear  and  beatiful  vision  seen  through  the 
terminal. 

May  I  suggest  that  this  cover  be  made 
available  in  poster  size  through  BITS. 
While  I  did  enjoy  the  Thomas  Jefferson 
cover,  I  feel  that  we  in  the  world  of 
computing  should  be  looking  to  the 
future,  and  that  this  particular  painting 

Continued  on  page  146 


MULTIPLE  DATA  RATE  INTERFACING  FOR  YOUR  CASSETTE  AND  RS-232  TERMINAL 

the  CI-812 

The  Only  S-100  Interface 
You  May  Ever  Need 


On  one  card,  you  get  dependable  "KC- 
standard "/biphase  encoded  cassette  inter- 
facing at  30,  60,  120,  or  240  bytes  per 
second,  and  full-duplex  RS-232  data  ex- 
change at  300-  to  9600-baud.  Kit,  includ- 
ing instruction  manual,  only  $89.95*. 


PERCOM  DATA  COMPANY,  INC. 

4021  WJNDSOR  •  GARLAND,  TEXAS  75042 

(214)  276-1968 


*Assembled  and  tested, 
$119.95.  Add  5%  for 
shipping.  Texas  resi- 
dents add  5%  sales  tax. 
BAC/MC  available. 


PerCom    'peripherals  for  personal  computing' 


11 


INSULATED   WHEELS 


Figure  I:  A  simple  train 
layout  for  one  train  show- 
ing the  manner  in  which 
electricity  is  transmitted 
to  the  motor  of  the  train. 


MOV    H      \ 

AC        ~ ' 


How  to  Computerize 


David  C  Brown 
1704  Manor  Rd 
Havertown  PA  1 9083 


One  of  the  many  uses  of  computers,  and 
especially  personal  computers,  is  in  the  area 
of  real  time  process  control  operations.  An 
enjoyable  way  of  experimenting  with  this 
area  would  be  to  have  your  small  computer 
control  a  model  train  layout.  Those  of  us 
who  attended  the  Personal  Computing  76 
convention  held  in  Atlantic  City  NJ  in 
August  undoubtedly  saw  the  Digital  Equip- 
ment Corporation's  display  of  a  train  layout 
controlled  by  an  LSI-11  computer.  There  is 
no  reason  why  you  could  not  do  something 
similar  with  your  own  system. 

Since  many  of  you  may  not  be  familiar 
with  the  techniques  used  in  model  rail- 
roading, let's  start  with  a  bit  of  background 
information.  Figure  1  shows  the  simple  oval 
layout  most  of  us  probably  had  as  children 
in  the  US,  where  DC  power  has  dominated 
the  scene  recently.  Power  is  applied  to  each 
rail.  One  set  of  wheels  on  the  engine  picks 
up  the  positive  side  and  feeds  it  to  the 
motor;  the  other  set  of  wheels  picks  up  the 


negative.  Unfortunately,  this  type  of  system 
can  only  handle  one  train  running  at  a  given 
time.  If  a  second  train  were  put  on  the 
tracks,  we  would  not  be  able  to  control  the 
two  trains'  speeds  independently.  To  solve 
this  problem,  we  go  to  block  control,  shown 
in  figure  2.  As  you  can  see,  the  negative  rail 
is  common,  as  it  was  in  figure  I.  The 
difference  lies  in  using  insulators  on  the 
positive  rails  and  two  power  packs.  Now  we 
can  use  switches  so  that  either  power  pack 
can  control  either  section  of  track.  This 
allows  us  to  have  a  train  on  the  smaller  loop 
(block  1)  and  another  train  on  the  run 
around  track  to  the  right  (block  2),  and  we 
can  control  each  train's  speed  independently 
through  the  two  power  packs.  We  still  have 
to  be  a  little  careful  when  we  operate  this 
system,  because  if  the  train  on  block  2  runs 
onto  block  1  while  block  1  is  occupied  we 
will  be  right  back  where  we  started,  with 
two  trains  running  at  the  same  speed  and 
controlled  by  one  power  pack. 


12 


INSULATOR 


IIOV 
AC 


Figure  2:  A  basic  example 
of  block  wiring.  The  nega- 
tive rail  is  common  to 
both  blocks.  The  positive 
rail  is  divided  by  insulators 
into  two  sections.  Each 
block  can  run  a  train  using 
a  separate  power  pack. 


TRAIN    A 
POWER    PACK 


TRAIN    B 
POWER    PACK 


Your  Model  Railroad 


In  reality,  then,  two  blocks  are  insuffi- 
cient. A  moderate  size  model  railroad  is 
likely  to  have  from  12  to  24  blocks.  Just 
before  a  train  enters  a  block,  the  operator 
would  flip  that  block's  control  to  his  power 
pack.  When  the  train  leaves  a  block,  the 
operator  would  turn  off  that  block  so  that 
the  other  operator  could  bring  his  or  her 
train  into  the  block  if  he  or  she  wanted  to. 

The  only  other  really  important  consider- 
ation in  train  layouts  that  we  should  discuss 
is  the  reverse  loop.  Suppose  we  had  a  loop  as 
in  figure  3,  so  that  the  train  could  go  around 
the  loop  and  end  up  on  the  same  track  but 
going  the  opposite  direction.  If  you  follow 
the  polarities  of  the  tracks  around  the  loop, 
you  will  see  that  they  end  up  as  a  short 
circuit,  with  "+"  connected  to  "— "  and  vice 
versa.  This  condition  requires  the  use  of  a 
special  type  of  block,  known  as  a  reverse 
block  or  reverse  loop.  The  reverse  block  is 
similar  to  the  other  blocks  we  have  dis- 
cussed, except  that  in  this  case,  both  tracks 


have  insulators  instead  of  just  one.  This  is 
illustrated  in  figure  4.  We  have  also  added 
some  other  switches  for  reversing  train  direc- 
tions. A  normal  power  pack  has  a  reverse 
switch  that  switches  the  polarity  of  its 
output  to  make  the  train  run  in  the  other 
direction.  With  reverse  loops,  we  can  no 
longer  use   this  switch.    Instead,  we  need  a 


Figure  3:  An  illustration 
of  the  type  of  difficulty 
that  arises  when  a  track  is 
put  through  a  reverse  loop. 
Following  polarities  it  will 
be  seen  that  the  negative 
side  of  the  track  will  con- 
nect to  the  positive  side  at 
the  end  of  the  loop  and 
vice  versa. 


IIOV 

AC 


POWER 
PACK 


13 


INSULATORS 


Figure  4:  Using  insulators 
on  both  the  positive  and 
negative  tracks  a  block  is 
created  that  is  totally  iso- 
lated from  the  main  track. 
Using  a  separate  power 
pack  will  allow  the  train  to 
run  through  the  block, 
turn  around,  and  return  to 
the  main  track. 


u 


MAIN 

DIRECTION 
i    SWITCH 


J 


direction  switch  for  the  reverse  loop  and 
another  direction  switch  for  the  rest  of  the 
track.  By  playing  with  these  switches,  we 
can  keep  the  polarities  correct  and  prevent  a 
short  circuit.  This  is  easier  to  see  in  an 
illustration.  Assume  that  the  train  is  coming 
down  the  main  track  from  the  left  of 
figure  4  and  that  the  track  switch  is  posi- 
tioned to  the  right  so  that  the  train  will  end 
up  going  around  the  reverse  block  in  a 
counterclockwise  direction.  The  polarities  of 
the  main  and  reverse  block  on  each  side  of 
the  A  insulators  are  the  same,  so  there  is 
no  problem  crossing  the  insulators.  If  we 
leave  everything  the  way  it  is  though,  we  will 
have  a  problem  when  the  train  hits  the  B 
insulators,  since  the  polarities  are  reversed 
on  opposite  sides  of  the  insulators.  In  this 
case,  while  the  train  is  on  the  reverse  block, 
we  flip  the  main  direction  switch.  This 
reverses  the  polarity  of  the  main  track  so 
that  it  is  the  same  as  the  reverse  block's 
polarity  at  the  B  insulators.  Now  the  train 
can  leave  the  reverse  block  and  go  back  onto 
the  main  track  with  no  problems.  Suppose 
the  polarity  of  the  reverse  block  had  been 
reversed  when  the  train  was  coming  down 
the  main  track.  In  this  case,  we  would  have 
had  no  problem  leaving  the  reverse  block, 
but  would  not  have  been  able  to  enter  it  in 


REVERSE  BLOCK 

DIRECTION 

SWITCH 


the  first  place.  The  solution  would  be  to  flip 
the  reverse  block  direction  switch  while  the 
train  was  on  the  main  track.  This  would 
match  up  the  polarities  at  the  A  insulators. 
Then,  after  the  train  got  onto  the  reverse 
block,  we  would  reverse  the  main  direction 
as  we  did  before  so  that  the  train  could 
safely  leave  the  reverse  block. 

Two  items  were  omitted  from  figure  4  for 
the  sake  of  simplicity  in  the  prior  discussion. 
At  point  C  we  would  tie  in  the  second  power 
pack  and  the  block  control  switches  of 
figure  2.  At  point  D  we  would  need  a  2  pole 
2  position  switch  to  allow  either  power  pack 
to  control  the  reverse  loop. 

So  much  for  train  layouts  and  block 
control!  The  only  other  major  piece  of 
equipment  on  a  model  railroad  is  the  track 
switch,  called  turnouts  in  model  railroad 
terminology.  Turnouts  allow  you  to  vary  the 
route  that  your  train  takes,  which  is  cer- 
tainly more  interesting  than  watching  your 
train  do  nothing  but  go  around  in  a  circle.  A 
turnout  represents  the  actual  track  that  can 
be  switched.  It  physically  can  sit  in  one  of 
two  states  which  are  electrically  controlled. 
The  electrical  components  for  moving  the 
turnout  are  called  switch  machines.  Figure  5 
shows  a  typical  turnout  and  switch  machine. 
The  turnout  contains  a  movable  section.  In 


14 


figure  5,  the  train  will  go  straight.  If  the 
movable  section  were  pulled  down,  the  train 
would  go  to  the  left  relative  to  its  motion, 
up  the  turnout  track.  The  switch  machine  is 
really  just  a  pair  of  solenoid  coils.  A  soft 
metal  bar  with  an  S  shaped  groove  slides 
between  the  coils.  The  movable  section  of 
the  turnout  has  a  lever  connected  to  it.  The 
other  end  of  this  lever  rides  in  the  groove  of 
the  sliding  bar  of  the  switch  machine.  In 
figure  5,  if  the  reverse  switch  was  closed,  coil 
B  would  be  energized  and  the  soft  bar  would 
slide  to  the  right.  The  lever  would  ride  in  the 
groove  and  be  pulled  down,  thus  pulling 
down  the  movable  section  of  the  turnout. 
Since  the  coils  draw  close  to  1  A  when 
energized,  they  should  only  be  energized 
long  enough  to  move  the  turnout.  If  left 
energized  for  more  than  a  few  seconds,  they 
could  overheat  and  burn  out.  For  this 
reason,  push  button  switches  are  normally 
used  for  controlling  the  switch  machines. 
The  switch  machines  normally  run  off  an 
alternating  current  accessory  power  pack 
and  have  no  relation  to  the  block  system. 
They  represent  a  separate,  isolated  set  of 
circuits  on  the  model  railroad. 

All  of  these  electrical  requirements  may 
sound  somewhat  confusing.  Linn  Westcott 
has  an  excellent,  very  inexpensive  paperback 
book  entitled  How  to  Wire  Your  Model 
Railroad  from  Kalmbach  Publishing  Com- 
pany, 1959.  This  book,  or  one  like  it,  should 
be  available  at  any  hobby  shop.  Another 
very  good  set  of  paperbacks  is  published  by 
Atlas  Tool  Company,  a  leading  manufacturer 
of  model  railroading  equipment.  Atlas  has 
also  simplified  the  wiring  for  you.  They  sell 
sealed  switch  units  containing  printed  cir- 
cuitry for  all  of  the  wiring  I  have  discussed. 
The  Atlas  selectors  contain  block  control 
circuitry,  the  Atlas  controllers  contain  di- 
rection control  and  reverse  loop  circuitry, 
and  the  Atlas  switch  controllers  contain  the 
turnout  control  switches.  These  devices  are 
inexpensive  and  have  the  ability  to  be 
plugged  together  for  handling  any  size  train 
system.  All  you  do  is  connect  your  power 
packs,  block  wires  and  switch  machine  wires 
to  the  Atlas  devices  and  your  wiring  is 
complete.  The  Atlas  books  also  diagram 
track  layouts,  usually  6  to  8,  from  simple  to 
complex,  give  construction  details,  and  show 
how  to  wire  them  with  the  Atlas  devices. 
What  more  could  you  ask  for? 

Now  that  I  have  you  hooked,  or  at  least 
interested  in  model  railroading,  let's  take  a 
look  at  what  we  need  to  control  this  system 
by  computer.  All  of  the  principles  discussed 
so  far  still  apply.  The  only  additional  item 
that  we  need  on  the  train  layout .  itself  is 
some  way  of  knowing  where  the  trains  are. 


Figure  5:  The  basic  workings  of  a  turnout  and  switch  machine.  The  two  coils 
of  wire  move  a  piece  of  soft  metal  with  a  groove  back  and  forth  between 
them.  The  switch  machine  rides  in  the  groove.  When  coil  B  is  activated,  by 
using  the  reverse  mode,  the  metal  is  pulled  into  the  B  coil  and  the  switch 
machine  slides  down  in  the  groove  changing  the  position  of  the  switch 
machine. 


The    simplest    approach    would    be    to    use 

magnetic    reed    switches.    As   shown   in    fig- 
ure 6,   these  switches  are   nothing  but   two 

contacts,  very  close  together,  and  scaled  in  a 

glass  envelope.  If  we  place  these  switches  at 

intervals  along  the   tracks  and  glue  a  small 

magnet  to  the  bottom  of  our  trains,  the  train 

going  over  the  glass  capsule   will  close  the 

switch.    These    switches,    by    the    way,    are 

common  in  burglar  alarm  systems  and  other 

proximity    sensing   devices.    I    will    rci'cr   to 

these  switches  along  the  tracks  as  markers  in 

the  remainder  of  this  article. 

The  train  control  system  to  be  discussed 

is  currently  under  development.  So  far,  the 

development   has  concentrated  on  the  soft- 

Figure  6:  This  is  a  mag- 
netic reed  switch  which 
can  be  used  as  a  marker 
along  the  track.  The 
switch  consists  of  two  con- 
tacts that  are  enclosed 
within  a  glass  envelopt 
The  two  metal  contac, 
are  activated  magnetically 
when  a  car  with  a  magnet 
attached  passes  over. 


BY  T  &  E 


GLASS  ENVELOPE 


~TX 


SWITCH   CONTACTS 
(ACTIVATED   BY  MAGNET) 


15 


vccO>- 


02     O 


Ml  O 
M2  C>- 
M3  C>~ 
M4  O- 
M5  [>■ 
M6  O- 
M7  C>- 
M8   fZ>- 


M9  D>- 
MIO  O- 

fiii  O- 

MI2  C>- 
MI3  [~>- 
MI4  O 
MI5  [3>~ 
MI6  O- 


»RI 
"|K 


0  0 


ETLG 


CLK 
INTE 
R0 

m 

R2 
R3 
R4 
R5 
R6 


IC  I 
8214 


R7 

ELR    ENLG 


INT 
A0 

a! 

A2 
BO 
§1 
B2 
SGS 

ECS 


I 


IC2 
8214 


CLK 

INTE 

RO 

Ri 

R2 

R3 

R4 

R5 

R6 

R7 

ELR    ENLG 


INT 
A0 
Al 
A2 
BO 
Bi 
B2 
SGS 


T 


0 


/77 


R2>R3>R4>R5 
IK  ?IK  ?IK  ?IK 


IC4 


i> 


RESET 


STB 

DO 

Dl 

D2 

D3 

D4 

D5 

D6 

D7 

CLR 
DSI 


8212 


INT 
D00 

DOI 

D02 

D03 

004 

D05 

D06 

D07 

MD 

DS2 


00000     000 


-C>INT 

-co 


-o 


-o 
-o 


8080 

BIDIRECTIONAL 
>     BUS 


-o 
-o 


Q 


A   6 


PRI0RITY_     10 
ARRAY  EN 


Figure  7:  This  circuit  is  used  to  encode 
switches  into  marker  numbers  and  generate 
interrupt  signals.  All  resistors  are  measured 
in  ohms  and  are  1/4  W. 


TO    4   MORE   82I4S   CASCADED    TOGETHER 


ware  aspects,  and  most  of  the  hardware 
details  are  yet  to  be  worked  out.  These  I 
must  leave  up  to  your  ingenuity  at  the 
moment.  You  will  need  a  way  of  controlling 
the  switch  machines.  The  October  1975 
issue  of  BYTE,  page  87,  showed  one  way 
this  could  be  done  with  a  flip  flop,  several 
2N3766  transistors,  and  a  oneshot  multi- 
vibrator. You  will  need  a  way  of  controlling 
the  block  switches,  allowing  you  to  turn  a 
block  off  or  to  route  power  to  it  from  any 
of  your  power  packs.  You  will  need  a  way  of 
switching  the  direction  controls,  both  main 
and  reverse  loop,  as  discussed  with  figure  4. 
Along  with  this,  you  will  need  a  way  of 
reading  the  polarity  between  the  current 
block  and  the  next  block,  probably  using  the 
marker  number  as  the  address.  Fortunately, 


you  only  need  this  capability  at  entrances 
and  exits  from  reverse  blocks.  You  will  need 
a  way  of  controlling  speed.  This  could  be 
done  with  a  digital  to  analog  converter,  or 
you  could  adapt  the  speed  controller  shown 
in  the  January  1975  issue  of  Popular 
Electronics,  page  58.  Last,  but  definitely  not 
least,  you  will  need  the  marker  system. 

The  markers,  as  mentioned  earlier,  are  the 
switches  located  along  the  track  for  sensing 
the  location  of  the  trains.  When  the  train 
passes  over  a  marker,  an  interrupt  could  be 
generated.  The  interrupt  software  must  be 
able  to  read  in  a  binary  number  identifying 
which  marker  was  hit.  This  could  be  accom- 
plished on  an  8080  based  system  by  cas- 
cading together  Intel  8214  Priority  Interrupt 
ICs,  as  shown  in  figure  7.  Ideally,  we  would 


16 


like  a  large  number  of  markers.  Although  I 
haven't  the  room  to  discuss  this  aspect,  a 
graphics  display  could  be  used  so  that  the 
track  layout  is  displayed  and  each  marker 
would  light  up  as  the  train  passed  it.  For 
this,  we  want  many  markers.  The  circuit  of 
figure  7  will  allow  up  to  40,  but  needs  five 
8214  chips,  at  $15  each.  Another  possibility 
would  be  to  use  a  256  word  by  8  bit  read 
only  memory  and  have  the  markers  control 
the  address  lines  into  the  memory,  which 
would  be  programmed  with  the  marker 
numbers.  I  would  be  interested  in  hearing 
from  anyone  who  has  a  cheap  way  of 
debouncing  and  encoding  256  switches  into 
a  byte  of  data  that  could  be  read  in  by  an 
interrupt  routine.  For  that  matter,  I  would 
be  interested  in  hearing  from  people  on  any 
of  these  hardware  requirements,  since  I 
haven't  worked  them  out  myself  yet. 

So  much  for  hardware.  The  software 
should,  actually  be  easier  to  explain  than 
model  railroading  theory.  The  entire  soft- 
ware package  is  table  driven.  This  makes  it 
easier  to  understand  and  easier  to  adapt  to  a 
wide  variety  of  train  layouts.  The  four  major 
tables  used  are  the  marker  table,  the  block 
table,  the  switch  table  and  the  train  table. 
The  marker  table  really  controls  most  of  the 
system.  Each  marker  on  the  track  has  a 
corresponding  entry  in  the  marker  table. 
When  the  train  hits  a  marker,  an  interrupt  is 
generated.  Interrupts  are  probably  preferable 
to  a  polled  system,  since  it  is  crucial  that 
none  be  missed  and  unless  the  marker  event 
is  latched,  a  busy  processor  could  miss  it.  If 
your  program  is  processing  a  console  com- 
mand and  a  train  passes  a  marker  before  you 
get  to  poll  it,  you  could  have  real  chaos.  The 
marker  interrupt  routine,  then,  would  read 
in  the  marker  number  and  look  it  up  in  the 
marker  table.  Table  1  shows  the  layout  of  an 
entry  in  the  marker  table.  If  a  graphics 
display  is  used,  MXY  would  be  used  to 
update  the  display,  showing  the  train  at  the 
new  marker  location.  MBLOCK  would  be 
the  pointer  to  the  block  table  entry  for  the 
block  which  contains  this  marker.  MSETUP 
indicates  that  this  is  the  last  marker  in  the 
block.  The  software  would  go  to  the  block 
table,  figure  out  the  next  block  that  the 
train  will  enter,  and  issue  a  command  to 
apply  power  to  that  block  (remember  fig- 
ure 2?).  MFREE  tells  the  software  that  the 
marker  is  the  first  one  in  the  block  and 
power  should  be  removed  from  the  prior 
block.  This  is  the  reverse  of  MSETUP. 

MFA  and  MFD  are  fractional  accelerators 
and  fractional  decelerators.  Fractionals 
represent  a  small  change  in  the  speed  of  the 
train.  Any  marker  can  be  set  up  to  add  or 
subtract  a  fractional   to   the  train's  current 


Label 


Byte 


Bit  Meaning 

1  to  8  marker  number 

1  to  8  block  table  entry  displacement 

1  to  8  stop  number 

1  setup  next  block  indicator 

2  stop  indicator 

7  apply  fractional  decelerator  on  stop  only 

8  release  prior  block  indicator 
1  to  4  fractional  accelerator  value 
5  to  8  fractional  decelerator  value 

1  to  8  XY  coordinates  for  graphics  display  routine 


Table  I :  Marker  Table  Information.  The  purpose  of  the  marker  table  is  to 
organize  the  current  information  associated  with  each  marker  input  from  the 
model  railroad  layout.  The  list  of  information  shown  here  is  described  in  the 
text  in  more  detail.  The  use  of  a  graphic  display  of  the  layout  is  assumed  by 
putting  in  display  coordinate  fields  (MXY),  which  might  be  omitted 
otherwise.  The  basic  marker  entry  information  is  repeated  in  this  format  for 
each  marker. 


MMARKER 

1  to  2 

MBLOCK 

3 

MSTOPNO 

4 

MSETUP 

5 

MSTOP 

5 

MFDS 

5 

MFREE 

5 

MFA 

6 

MFD 

6 

MXY 

7  to  8 

Label 


Byte 


BBLOCK 

1 

BTRAIN 

2 

BREV 

2 

BPRIOR 

3 

BNEXT 

4 

Bit  Meaning 

1  to  8  block  number 

1  to  4  which  train  is  currently  in  the  block 

8  reverse  block  indicator 

1  to  8  prior  block  ID 

1  to  8  next  block  ID 


Table  2:  Block  Table  Information.  The  purpose  of  the  block  table  is  to 
organize  the  current  information  about  each  block  in  the  model  railroad 
layout.  The  block  is  identified  by  its  number.  (Although  this  field  might  be 
omitted  if  numbers  and  position  in  the  table  are  made  identical.)  If  the  block 
currently  has  a  train,  its  number  is  identified.  The  topology  of  the  track 
network  is  reflected  in  the  prior  block  and  next  block  pointers. 


speed.  This  would  be  used  to  speed  up  the 
train  as  it  goes  up  a  hill,  called  a  grade,  or 
slow  it  down  on  a  downgrade.  It  could  really 
be  used  any  place  you  wanted  the  train's 
speed  to  automatically  change.  Fractionals 
can  also  be  used  for  programmed  stops.  The 
MSTOP  indicator  in  the  marker  table  entry 
tells  the  system  that  the  train  should  stop. 
However,  a  sudden  stop  would  be  unrealis- 
tic, so  we  can  use  the  fractional  decelerator. 
If  the  operator  requests  a  stop  at  a  particular 
stop  number  and  that  stop  number  equals 
MSTOPNO,  the  system  will  look  at  MSTOP 
and  MFDS.  If  MFDS  is  on,  the  fractional 
decelerator  will  be  applied,  slowing  down 
the  train.  MFDS  also  will  prevent  the  frac- 
tional decelerator  from  being  applied  if  a 
stop  was  not  requested.  Eventually  the  train 
will  hit  a  marker  that  has  the  correct 
MSTOPNO  and  has  the  MSTOP  indicator  on, 
and  the  train  will  be  stopped  completely. 

Each  block  on  the  track  layout  has  a 
corresponding  block  table  entry,  as  shown  in 
table  2.  The  block  table  entry  contains 
indicators  for  what  train  is  in  the  block  and 
whether  the  block  is  a  reverse  block  (our 
figures  3  and  4  discussion).  The  reverse  indi- 
cator will  be  used  by  the  marker  processing. 
When    power   is   to   be   applied   to   the  next 


17 


Label  Byte  Bit         Meaning 

SSWITCH  1  1  to  8  switch  number 

SPOS  2  1  through  or  turnout  indicator 

SFROM  3  1to8  from  block  ID 

STHRU  4  1to8  through  block  ID 

STURN  5  1to8  turnout  block  ID 

SNMKTHRU  6  1  to  8  setup  next  marker  ID  for  through  block 

SNMKTURN  7  1  to  8  setup  next  marker  ID  for  turnout  block 

SPMKTHRU  8  1  to  8  release  prior  marker  ID  for  through  block 

SPMKTURN  0  1  to  8  release  prior  marker  ID  for  turnout  block 

Table  3:  Switch  Table  Information.  The  switch  table  entries  describe  each 
switch  in  relation  to  the  railroad  layout  by  means  of  pointers  to  the  "from,  " 
"through"  and  "turnout"  blocks.  This  information,  which  is  relatively  fixed 
for  a  given  layout,  is  used  to  modify  the  prior  and  next  block  information  in 
the  block  table  according  to  the  settings  of  the  switch.  One  such  entry  is 
needed  for  each  switch  in  the  layout.  (A  roundhouse  would  have  to  be  a 
special  case  .  ■  ■  ) 


BLOCK   2 


MARKER   I 


i 


INSULATORS 


MARKER    2 


MARKER    3 


J    L 


BLOCK    I  BLOCK   3 

Figure  8a:  An  example  of  a  marker  being  between  two  blocks.  In  this  type  of 
array  the  computer  must  only  determine  whether  the  train  will  go  into 
block  2  or  3. 

BLOCK    I  BLOCK  2 


BLOCK  4 


Figure  8b:  This  figure  is  slightly  more  complex  than  figure  8a.  In  this  type  of 
array  the  train  may  enter  block  3  or  block  2.  The  computer  must  determine 
which  block  the  train  will  enter.  If  it  is  block  3  the  information  for  block  3 
must  be  updated  for  the  particular  train  as  soon  as  the  train  has  passed 
marker  I .  If  the  train  will  enter  block  2  next,  however,  the  information  for 
block  2  must  not  be  updated  until  the  train  has  passed  marker  2. 


block,  the  software  will  check  to  see  if  either 
the  current  or  the  next  block  has  the  reverse 
block  indicator  on.  If  neither  block  is  a 
reverse  block,  power  is  applied  to  the  next 
block.  However,  if  either  block  is  a  reverse 
block,  we  must  do  additional  processing. 
Power  is  applied,  but  we  have  to  worry 
about  the  polarity.  Therefore,  we  read  in  the 
polarity  between  the  two  blocks,  probably 
using  the  marker  number  as  the  address  for 
the  polarity  interface.  We  cannot  use  the 
block  number,  since  the  polarity  will  be 
different  at  the  two  ends  of  the  reverse 
block.  If,  after  reading  the  polarity  between 
the  two  blocks,  we  find  that  they  are  equal, 
we  are  done.  If  they  are  different  and  the 
current  block  is  a  reverse  block,  then  we 
must  reverse  the  polarity  of  the  main  track. 
If  they  are  different  and  the  current  block  is 
not  a  reverse  block,  we  must  reverse  the 
polarity  of  the  reverse  block.  These  are  the 
same  operations  that  we  discussed  with 
figure  4,  only  the  computer  will  do  them 
rather  than  the  operator.  The  BPRIOR  and 
BNEXT  fields  in  the  block  table  entry  are 
pointers  to  the  block  table  entries  for  the 
prior  and  next  block  on  the  track  layout. 
These  pointers  are  maintained  and  modified 
by  the  switch  processing. 

When  the  operator  requests  that  a  par- 
ticular switch  position  be  changed,  the  soft- 
ware will  locate  the  switch  entry  in  the 
switch  table.  Table  3  shows  the  layout  of  a 
switch  table  entry.  SPOS,  the  position  indi- 
cator, will  be  toggled  and  the  graphics 
display,  if  used,  will  be  updated  to  show  the 
new  switch  position.  The  new  value  of  SPOS 
will  be  output  to  the  switch  interface. 
SFROM,  STHRU,  and  STURN  are  used  to 
update  the  prior  and  next  block  fields  of  the 
block  table  entries  so  that  each  block 
entry  points  to  its  correct  successor  and 
predecessor.  SNMKTHRU,  SNMKTURN, 
SPMKTHRU,  and  SPMKTURN  are  used  to 
turn  on  and  off  the  MSETUP  and  MFREE 
indicators  in  the  marker  table.  For  example, 
if  the  switch  is  set  for  turnout,  MSETUP  in 
the  marker  pointed  to  by  SNMKTHRU  will 
be  turned  off  and  will  be  turned  on  in  the 
marker  pointed  to  by  SNMKTURN. 
SPMKTHRU  and  SPMKTURN  do  the  same 
with  the  MFREE  indicator  in  the  marker 
table.  The  reason  for  this  may  not  be 
apparent,  so  let's  look  at  an  example.  In 
figure  8a,  this  processing  would  not  be 
needed.  MSETUP  in  marker  1  would  always 
be  on,  and  MFREE  could  be  left  on  in  both 
marker  2  and  marker  3  since  there  is  no 
other  way  into  block  2  or  3  other  than  from 
block!.  However,  figure  8b  is  a  different 
case.  Here  we  have  the  switch  in  the  middle 
of  a   block.    If  the  switch  were  set  for  the 


18 


turnout,  the  train  would  leave  block  1  and 
enter  block  3.  Marker  1  would  have 
MSETUP  on  and  marker  4  would  have 
MFREE  on.  Now  let's  change  the  switch 
position.  The  train  will  no  longer  go  into 
block  3.  The  switch  processing  would  have 
updated  block  Ts  block  table  entry  so  that 
block  2  was  the  next  block.  If  we  try  to  set 
up  the  next  block  (block  2)  according  to 
marker  1,  we  will  be  premature.  Maybe  there 
is  another  train  in  block  2  at  the  moment, 
since  there  could  be  quite  a  bit  of  track 
between  the  switch  and  the  beginning  of 
block  2.  Likewise,  if  a  train  comes  down 
block  3  and  tries  to  free  the  prior  block 
according  to  marker  4,  we  might  have  a 
similar  problem.  The  switch  processing, 
then,  must  turn  off  MSETUP  in  marker  1 
and  turn  off  MFREE  in  marker  4  if  the 
switch  is  set  for  through  and  turn  them  on  if 
the  switch  is  set  for  turnout.  In  this  par- 
ticular case,  markers  2  and  5  could  have 
MSETUP  on  all  the  time,  markers  3  and  6 
could  have  MFREE  on  all  the  time, 
SNMKTHRU  and  SPMKTHRU  will  be  zero, 
and  SNMKTURN  and  SPMKTURN  will  have 
a  1  and  a  4  respectively. 

The  train  table  of  table  4  has  one  entry 
for  each  train  that  you  are  running.  This 
table  entry  is  used  primarily  for  keeping 
track,  pardon  the  pun,  of  where  each  train 
is.  It  specifies  what  block  the  train  is  in,  the 
last  marker  hit,  the  train's  direction  (forward 
or  reverse),  the  train's  current  speed,  and  the 
port  address  for  the  train's  power  pack 
interface.  This  interface  would  control  the 
speed,  through  digital  to  analog  convenors 
or  similar,  and  the  main  and  reverse  block 
direction  controls.  The  train  table  entry 
would  be  updated  by  marker  processing  and 
by  speed  and  direction  commands  issued  by 
the  operator. 

So  far,  we  have  discussed  primarily  the 
automatic  functions  of  the  software.  Now 
let's  look  at  the  functions  controlled  by  the 
operator.  We  already  discussed  switches  and 
stops.  That  leaves  us  with  direction  and 
speed.  Suppose  we  want  to  reverse  a  train. 
First,  this  command  would  not  be  allowed  if 
the  train  was  moving,  since  we  might  cause  a 
derailment  if  we  suddenly  reversed  a  fast 
moving  train.  Other  than  that,  it's  fairly 
simple.  We  store  an  indicator  in  TDI R  of  the 
train  table  entry  to  indicate  that  the  train  is 
going  in  the  reverse  direction  and  then  issue 
the  command  to  reverse  either  the  main 
polarity  or  the  reverse  block  polarity,  de- 
pending on  whether  or  not  the  train  is 
currently  in  a  reverse  block.  From  then  on, 
we  reverse  logically  the  meaning  of  the 
MSETUP  and  MFREE  indicators  in  the 
marker  table  entries  and  we  reverse  logically 


Label 


Byte  Bit         Meaning 


TTRAIN 

1 

1  to  4 

train  number 

TDIR 

1 

8 

direction 

TBLOCK 

2 

1  to  8 

current  block  ID 

TMARKER 

3  to  4 

1  to  8 

current  marker  ID 

TSPEED 

5 

1  to  8 

train's  current  speed 

TPORT 

6 

1  to  8 

IO  port  address  for  controller 

Table  4:  Train  Table  Information.  Each  train  in  the  layout  must  also  be 
followed  in  the  software  as  it  runs  its  route.  The  information  can  be 
formatted  and  referenced  with  a  structure  such  as  this.  The  details  vary  for 
each  train  with  time,  as  the  train  progresses  through  the  layout. 


the  meanings  of  the  prior  and  next  block 
pointers  in  the  block  table  entries.  There- 
fore, we  set  up  the  next  block  when  MFREE 
is  on  and  free  the  prior  block  when  MSETUP 
is  on.  BNEXT  points  to  the  prior  block  and 
BPRIOR  points  to  the  next  block. 

Train  speed  control  can  be  somewhat 
more  difficult.  There  are  basically  two  ways 
to  control  speed.  The  easiest  would  be  to  use 
a  digital  to  analog  converter.  Trains  run  on  0 
to  16  VDC,  so  a  converter  would  be  needed 
capable  of  providing  this  range  at  approxi- 
mately 1  A  per  train  to  be  run  at  a  time. 
Therefore,  if  you  plan  on  running  two  trains 
at  the  same  time,  you  need  a  0  to  16  VDC 
supply  rated  at  2  A  minimum.  This  idea 
works  well  with  the  fractional  system  out- 
lined earlier,  but  is  not  very  realistic.  The 
operator  would  have  to  enter  on  the  console 
the  voltage  to  be  applied  and  the  software 
would  output  to  the  converter  the  correct 
value.  To  gradually  speed  up  a  train  would 
keep  the  operator  busy  for  a  while  entering 
speed  commands. 

A  more  realistic  approach  would  be  to 
enter  an  accelerate  command  that  would 
gradually  speed  up  the  train  at  a  uniform 
rate.  When  the  proper  speed  is  reached,  the 
operator  would  enter  a  hold  command  to 
maintain  the  current  speed.  To  slow  down,  a 
decelerate  command  would  cause  the  train 
to  gradually  slow  down,  and  the  hold  com- 
mand would  again  be  used  to  stop  decel- 
erating. This  type  of  control  could  be 
accomplished  by  adapting  the  circuit  on 
page  58  of  the  January  1975  Popular  Elec- 
tronics to  operate  as  an  IO  device  rather 
than  by  push  buttons.  This  complicates  the 
fractional  system,  since  the  fractionals  were 
intended  to  represent  actual  voltage  quanti- 
ties to  be  applied  to  the  train's  speed. 

A  similar  approach  could  be  to  still  use 
digital  to  analog  converters,  but  to  have  the 
software  periodically  increment  or  decre- 
ment the  value  applied  to  the  converter  if  an 
accelerate  or  decelerate  command  was  in 
effect.  This  method  will  satisfy  both  realism 
and  the  operation  of  the  fractionals,  but 
depends  upon  the  construction  of  the  soft- 


19 


Marker  Interrupt  Processing  Routine 

The  M  algorithm  is  used  for  marker  interrupt 
processing.  It  reads  in  the  marker  number,  per- 
forms operations  on  it,  including  block  processing 
(B  algorithm)  if  necessary,  determines  any  change 
in  speed  and  then  returns  from  the  interrupt. 

Ml.       Read  the  marker  number  input  and  look  it 

up  in  Marker  Table. 
M2.      Use    MB  LOCK    of    Marker   Table   entry   to 

point  to  Block  Table  entry. 
M3.       Use  BTRAIN  of  Block  Table  entry  to  point 

to  Train  Table  entry. 
M4.      Store   marker  and    Block  Table  pointers  in 

TMARKER  and  TBLOCK. 
M5.       If  TDIR=0  and   MSETUP  is  on  then  go  to 

B1, 
M6.       If  TDIR  =  1  and  MFREE  is  on  then  go  to  B1. 
M7.       If  TDIR=0  and   MFREE   is   on  then  go  to 

B11. 
M8.       If  TDIR=1    and   MSETUP  is  on  then  go  to 

B11. 
M9.       Send   MXY  to  graphics  display  if  it  is  used. 
M10.    If  MFA  >  0  then  add  MFA  to  TSPEED  and 

send      TSPEED      output      to      the      speed 

controller. 
Mil.    If  MFD  >  0  and  MFDS  is  off  then  subtract 

MFD    from    TSPEED    and    send    TSPEED 

output  to  the  speed  controller. 
M12.     If  MFD  >  0  and  MFDS  is  on  and  stop  has 

been  requested  at  MSTOPNO  then  subtract 

MFD     from    TSPEED    and    send    TSPEED 

output  to  the  speed  controller. 
M13.    If     MSTOP     is    on    and    a    stop    has    been 

requested    at    MSTOPNO    then    store    0    in 

TSPEED  and  send  TSPEED  output  to  the 

speed  controller. 
M14.    Return  from  interrupt  processing  routine. 

B 

Block  Processing  Routine 

The  B  algorithm  is  used  for  block  processing  of 
the  power  controls.  The  algorithm  determines  the 
voltage  and  polarity  changes  that  are  to  be  made 
for  the  various  blocks.  Lines  B1  to  B10  set  up  the 
next  block  for  the  train  to  enter  it.  Lines  B11  to 
B1  5  free  the  prior  block  that  the  train  is  leaving. 

B1.        If   TDIR  =  1    then   use    BPRIOR  as  the  next 

block  pointer,  else  use  BNEXT  as  the  next 

block  pointer. 
B2.       If  BTRAIN  of  the  next  Block  Table  entry  = 

TTRAIN  then  go  to  M7. 
B3.        If  BTRAIN  =£  0  then  stop  system  (there  is  a 

train  over  run:  two  trains  in  same  block!) 
B4.       Store    TTRAIN     in    BTRAIN    of    the    next 

block. 
B5.       Send   command   output  to   the    block   con- 
troller to  power  up  the  next  block. 
B6.        If  BREV  of  the  current  block  and  BREV  of 

the  next  block  are  both  0  then  go  to  M7. 
B7.        Read  polarity  of  tracks  using  MMARKER  of 

the    current     Marker    Table    entry    as    the 

address. 
B8.       If  polarity=0,  then  current  and  next  block 

polarities  are  the  same  so  go  to  M7. 
B9.        If    BREV    of   the   current   block   =    1,   then 

output    a    command    to    reverse    the    main 

polarity  and  go  to  M7. 
B10.     Output  a   command    to    reverse  the  reverse 

block's  polarity  and  go  to  M7. 
B11.     If   TDIR=1    then    use    BNEXT  as   the  prior 


block  pointer  else  use  BPRIOR  as  the  prior 

block  pointer. 
B12.     If  BTRAIN  of  the  prior  block  =  0  then  go  to 

M9. 
B13.     Store  0  in  BTRAIN  of  the  prior  block. 
B14.     Send  command  output  to  block  controller 

to  turn  off  prior  block  and  go  to  M9. 


Switch  Command  Routine 

The  S  algorithm  performs  the  switch  command 
processing  by  resetting  all  of  the  markers  that  are 
being  affected  by  a  particular  train.  It  is  called  by 
an  operator  command. 

51.  Look  up  the  switch  number  in  the  Switch 
Table. 

52.  Reverse  value  of  SPOS  (O=through, 
1=turnout).  i 

53.  If  SPOS=0  then  use  STHRU  as  the  pointer 
to  next  block  and  go  to  S5. 

54.  Use  STURN  as  the  pointer  to  the  next 
block. 

55.  Store  the  pointer  to  the  next  block  in 
BNEXT  of  the  Block  Table  entry  pointed  to 
by  SFROM. 

56.  If  SPOS=1  then  go  to  S14. 

57.  Turn  off  MSETUP  in  Marker  Table  entry 
pointed  to  by  SNMKTURN. 

58.  Turn  on  MSETUP  in  Marker  Table  entry 
pointed  to  by  SNMKTHRU. 

59.  Turn  off  MFREE  in  Marker  Table  entry 
pointed  to  by  SPMKTURN. 

510.  Turn  on  MFREE  in  Marker  Table  entry 
pointed  to  by  SPMKTHRU. 

511.  Send  SPOS  output  to  the  switch  controller 
using  SSWITCH  as  address. 

512.  If  the  graphics  display  is  used  then  update  it 
to  Show  new  switch  position. 

513.  Return  to  operator  command  processor. 

514.  Turn  off  MSETUP  in  the  Marker  Table 
entry  pointed  to  by  SNMKTHRU. 

515.  Turn  on  MSETUP  in  the  Marker  Table  entry 
pointed  to  by  SNMKTURN. 

516.  Turn  off  MFREE  in  the  Marker  Table  entry 
pointed  to  by  SPMKTHRU. 

S'17.     Turn  on  MFREE  in  the  Marker  Table  entry 

pointed  to  by  SPMKTURN. 
S18.     Go  toS11. 


R 


Reverse  Direction  Command  Routine 

The  R  algorithm  performs  the  reverse  direction 
command  processing.  If  the  train  is  not  moving, 
the  polarity  of  the  block  will  be  reversed  and  TDIR 
will  be  logically  inverted. 

R1.       If  TSPEED  in  the  current  Train  Table  entry 

^  0  then  indicate  invalid  request  and  return 

to  command  processor. 
R2.       Reverse    the    present    value    of    TDIR    in 

current  Train  Table  entry. 
R3.       Use    TBLOCK  of  the   current   Train    Table 

entry   to  point  to  the  current  Block  Table 

entry. 
R4.       If  BREV  of  the  current  Block  Table  entry  = 

1  then  go  to  R7. 
R5.       Send     command     output    to     reverse     the 

polarity  of  the  main  track. 
R6.       Return  to  operator  processor. 
R7.       Send  command  output  to  reverse  polarity  of 

reverse  block. 
R8.       Return  to  operator  processor. 


20 


ware  to  increment  or  decrement  at  a  reason- 
able pace. 

Table  5  shows  a  list  of  operator  com- 
mands that  might  be  used  on  a  typical 
computerized  model  railroad.  The  remainder 
of  this  article  is  devoted  to  some  algorithms 
for  the  more  important  processes  we  have 
discussed.  Algorithms,  if  the  term  is  un- 
familiar, are  simply  flowcharts  expressed  in 
words  rather  than  in  blocks  and  arrows. 
Since  this  article  is  not  presenting  actual 
code  and  is  more  directed  to  theory  than  to 
bit  by  bit  details,  generalized  algorithms 
seem  more  appropriate.  I  hope  this  article 
has  increased  your  interest  in  the  area  of 
model  railroading  and  has  given  you  some 
ideas  on  how  you  can  simulate,  on  a  small 
scale,  the  types  of  real  time  process  control 
systems  that  could  be  used  on  a  large  scale 
to  control  an  actual  railroad." 


Mnemonic  Command  meaning 

A  Tx  accelerate  train  x 

D  Tx  decelerate  train  x 

H  Tx  hold  train  x  at  current  speed 

S  Tx  stop  train  x  immediately 

S  Tx  Sy  stop  train  x  at  stop  number  y 

FA  xxx  My  set  fractional  accelerator  value  of  xxx  into  marker  y 

FD  xxx  My  set  fractional  decelerator  value  of  xxx  into  marker  y 

FD  xxx  My,S  same  as  above  but  also  turn  on  MFDS 

R  Tx  reverse  train  x 

Sx  toggle  position  of  switch  x 

Ex  My1,y2,--,yn     establish  stop  x  at  markers  y1  ,y2,-yn  and  turn  on  MSTOP  in  marker  yn 

Dx  delete  stop  x 

K  kill  system;  emergency  power  off 

C  close  down  system;  orderly  stop  of  trains  and  power  off 

Table  5:  Definition  of  a  Command  Language.  Here  is  mnemonic  set  of 
commands  for  control  of  the  trains  on  a  model  railroad  layout  from  a 
terminal  keyboard.  When  a  general  purpose  keyboard  is  used,  this  sort  of 
sequence  is  required  —  although  the  particular  commands  defined  here  are 
not  necessarily  the  only  set  possible.  Algorithms  S  and  R  (see  separate  boxes) 
are  command  processing  routines  for  switch  toggling  and  reversal  of  trains, 
two  of  the  more  complex  commands  in  this  list. 


GLOSSARY 


Algorithm:  A  method  used  to  express  the  steps  to 
be  taken  in  solving  a  problem.  It  may  be  expressed 
in  words,  as  a  flowchart  of  blocks,  lines  and 
arrows,  or  in  other  forms. 

Block  control:  Sectioning  up  a  railroad  layout  so 
that  multiple  power  packs  can  be  used  to  run  more 
than  one  train  on  the  tracks  at  a  time. 

Block  table:  A  table  used  in  the  software  for 
controlling  a  model  train  layout.  Each  block  on  the 
tracks  has  a  corresponding  entry  in  the  block  table. 

Digital  to  analog  converter:  Commonly  abbreviated 
as  DAC,  the  device  takes  as  input  a  digital 
value,  typically  an  "n"  bit  binary  number,  and 
outputs  an  analog  signal  in  the  form  of  a  variable 
voltage  corresponding  to  the  digital  input  value. 

Fractionals:  As  used  in  this  article,  a  fractional  is  a 
4  bit  binary  number  representing  a  small  change  in 
the  speed  of  the  train.  It  is  used  for  automatic 
speed  changes  under  program  control. 

Graphics  display:  A  video  display  device  that  can 
display  lines,  curves  and  drawings  rather  than  just 
characters.  In  a  train  system,  a  graphics  display 
could  be  used  to  show  a  real  time  diagram  of  the 
train  layout  and  where  each  train  is  located. 

Insulators:  In  a  train  layout,  insulators  are  used  to 
isolate  sections  of  track  in  order  to  use  block 
control.  Since  power  is  supplied  to  the  train 
through  the  tracks,  insulators  are  placed  between 
sections  of  track  so  that  each  section  can  be 
controlled  independently. 

Markers:  Switches  located  on  the  track  that  are 
activated  by  the  passing  of  a  train.  These  markers 
are  used  by  the  software  to  keep  track  of  where 
the  trains  are. 

Marker  table:  A  table  used  in  the  software, 
containing  an  entry  for  each  marker  on  the  train 
layout. 


Polarity:  As  used  in  this  article,  polarity  refers  to 
which  track  is  positive  and  which  track  is  negative. 
Normally,  this  is  not  really  important,  except  in 
the  case  of  reverse  loops,  where  the  polarity 
between  two  adjacent  blocks  on  the  layout  might 
be  different,  resulting  in  a  short  circuit  when 
crossed  by  the  train. 

Reverse  loop:  Or  reverse  block;  this  is  where  a 
section  of  a  track  will  allow  a  train  to  go  around  in 
a  loop  and  end  up  on  the  same  track  but  going  in 
the  opposite  direction.  Special  handling  of  these 
cases  is  needed. 

Solenoid:  A  coil  of  wire  which  acts  as  an  electro- 
magnet. When  current  is  applied  to  the  coil,  a  bar 
of  soft  metal  will  be  attracted  toward  the  magnet. 
In  model  railroading,  solenoids  are  part  of  a  switch 
machine. 

Switch  machine:  A  solenoid  activated  mechanism 
attached  to  a  turnout,  used  to  move  a  section  of 
track  so  that  the  route  of  the  train  can  be 
modified. 

Switch  table:  A  table  used  in  the  software, 
containing  an  entry  for  each  switch  machine  and 
attached  turnout  on  the  track. 

Train  table:  A  table  containing  an  entry  for  each 
train  that  is  running  on  the  train  layout  (also,  the 
physical  structure  on  which  your  train  layout  is 
built). 

Turnout:  A  movable  section  of  track,  used  to 
modify  the  route  of  the  train.  A  turnout  allows  the 
train  to  go  in  one  of  two  possible  directions.  A 
switch  machine  is  used  to  move  the  turnout.  A 
turnout  has  a  normal  position,  which  is  the 
direction  most  commonly  taken,  and  a  reverse 
position,  which  is  the  less  frequently  used  position. 
In  this  article,  I  have  also  used  turnout  to  refer  to 
the  reverse  position,  and  through  to  refer  to  the 
normal  position. 


21 


Introducing  Apple  II. 

SP  Mi"  Mr 


■»>•■« 


M, 


You've  just  run  out  of  excuses 
for  not  owning  a  personal  computer. 


Clear  the  kitchen  table.  Bring 
in  the  color  TV.  Plug  in  your  new- 
Apple  II?  and  connect  any  standard 
cassette  recorder/player.  Now  you're 
ready  for  an  evening  of  discovery  in 
the  new  world  of  personal  computers. 

Only  Apple  II  makes  it  that 

easy.  It's  a 


complete,  ready  to  use  computer,  not  a 
kit.  At  $1298,  it  includes  video  gra- 
phics in  15  colors.  It  includes  8K  bytes 
ROM  and  4K  bytes  RAM -easily 
expandable  to  48K  bytes  using  16K 
RAMs  (see  box).  But  you  don't  even 
need  to  know  a  RAM  from  a  ROM  to 
use  and  enjoy  Apple  II.  For  example, 
it's  the  first  personal  computer  with 
a  fast  version  of  BASIC  permanently 
stored  in  ROM.  That  means  you  can 
begin  writing  your  own  programs  the 
first  evening,  even  if  you've  had  no 
previous  computer  experience. 

The  familiar  typewriter-style 
keyboard  makes  it  easy  to  enter  your 
nstructions.  And  your  programs  can 
be  stored  on— and  retrieved  from— 
mdio  cassettes,  using  the  built-in 


cassette  interface,  so  you  can  swap 
with  other  Apple  II  users. 

You  can  create  dazzling  color 
displays  using  the  unique  color  gra- 
phics commands  in  Apple  BASIC. 
Write  simple  programs  to  display 
beautiful  kaleidoscopic  designs.  Or 
invent  your  own  games.  Games  like 
PONG— using  the  game  paddles, 
supplied.  You  can  even  add  the  dimen- 
sion of  sound  through  Apple  IPs 
built-in  speaker. 

But  Apple  II  is  more 
than  an  advanced,  infinitely 
flexible  game  machine.  Use 
it  to  teach  your  children 
arithmetic,  or  spelling 
for  instance.  Apple  II 
makes  learning  fun. 
Apple  II  can  also 
manage  household  finances, 
chart  the  stock  market  or 
index  recipes,  record  collections,  even 
control  your  home  environment. 

Right  now,  we're  finalizing  a 
peripheral  board  that  will  slide  into 
one  of  the  eight  available  mother- 
board slots  and  enable  you  to  compose 

music  elec- 
tronically. 
And  there 
will  be  other 
peripherals 
announced 
soon  to 
allow  your 
Apple  II  to 
talk  with  another  Apple  II,  or  to  inter- 
face to  a  printer  or  teletype. 

Apple  II  is  designed  to  grow 
with  you  as  your  skill  and  experience 
with  computers  grows.  It  is  the  state 
of  the  art  in  personal  computing  today, 
and  compatible  upgrades  and  peri- 
pherals will  keep  Apple  II  in  the  fore- 
front for  years  to  come. 

Write  us  today  for  our  detailed 
brochure  and  order  form.  Or  call  us 
for  the  name  and  address  of  the 
Apple  II  dealer  nearest  you.  (408) 
996-1010.  Apple  Computer  Inc., 
20863  Stevens  Creek  Boulevard, 
Bldg.  B3-C,  Cupertino, 
California  95014. 


Apple  II™  is  a  completely  self-contained 
computer  system  with  BASIC  in  ROM, 
color  graphics,  ASCII  keyboard,  light- 
weight, efficient  switching  power  supply 
and  molded  case.  It  is  supplied  with 
BASIC  in  ROM,  up  to  48K  bytes  of 
RAM,  and  with  cassette  tape,  video  and 
game  I/O  interfaces  built-in.  Also  in- 
cluded are  two  game  paddles  and  a 
demonstration  cassette. 

SPECIFICATIONS 

•  Microprocessor:  6502  (1  MHz). 

•  Video  Display:  Memory  mapped,  5 

modes— all  Software-selectable: 

•  Text— 40  characters/line,  24  lines 
upper  case. 

•  Color  graphics— 40hx48v,  15  colors 

•  High-resolution  graphics— 280hx 
192v;  black,  white,  violet,  green 
(12K  RAM  minimum  required) 

•  Both  graphics  modes  can  be  selected 
to  include  4  lines  of  text  at  the  bottom 
of  the  display  area. 

•  Completely  transparent  memory 
access.  All  color  generation  done 
digitally. 

•  Memory:  up  to  48K  bytes  on-board 
RAM  (4K  supplied) 

•  Uses  either  4K  or  new  16K  dynamic 
memory  chips 

•  Up  to  12K  ROM  (8K  supplied) 

•  Software 

•  Fast  extended  BASIC  in  ROM  with 
color  graphics  commands 

•  Extensive  monitor  in  ROM 
•I/O 

•  1500  bps  cassette  interface 
■  8-slot  motherboard 

•  Apple  game  I/O  connector 

•  ASCII  keyboard  port_ 

•  Speaker 

•  Composite 
video 
output 


Apple  II  is  also 

available  in  board-only 

form  for  the  do-it-yourself  hobbyist.  Has 

all  of  the  features  of  the  Apple  II  system, 

but  does  not  include  case,  keyboard, 

power  supply  or  game  paddles.  $598. 

PONG  is  a  trademark  of  Atari  Inc. 
*Apple  II  plugs  into  any  standard  TV  using 
an  inexpensive  modulator  (not  supplied). 


_4- 


apple  computer  inc. 


Order  your  Apple  II  now. 


Use  this  order  form  to  get  your  Apple  II  fast.  As  a  special  offer  for 
those  who  order  now,  we  will  include  free  a  custom  vinyl  carrying  case 
(a  $50  value).  And  we  will  also  pay  shipping  charges  to  anywhere  in  the 
continental  United  States. 


Apple  II  Price  List. 

RAM 
Complement 

Apple  II 
System 

Calif.  Residents 
Add 

Apple  II 
Board-only 

Calif.  Residents 
Add 

4K 

$1,298.00 

$  84.37 

$    598.00 

$  38.87 

8K 

1,398.00 

90.87 

698.00 

45.37 

12K 

1,498.00 

97.37 

798.00 

51.87 

16K 

1,698.00 

110.37 

978.00 

63.57 

20K 

1,778.00 

115.57 

1,078.00 

70.07 

24K 

1,878.00 

122.07 

1,178.00 

76.57 

32K 

2,158.00 

140.27 

1,458.00 

94.77 

36K 

2,258.00 

146.77 

1,558.00 

101.27 

48K 

2,638.00 

171.47 

1,938.00 

125.97 

Memory  is  offered  at  a  20%  savings  when  ordered  with  the  system-or  board-as  reflected  in  the  prices  above. 

Additional  RAM  can  be  easily  added-in  at  a  later  date  as  your  needs  develop. 
One  set  4K  chips  (4K  bytes)  $125 
One  set  16K  chips  (16K  bytes)  $600 


Prices  and  specifications  subject  to  change  without  notice. 


^cippkz  computer  inc. 

9n«fi'*  Qtmmrc  Pr^Bt  Rhrrl       R3.P 


20863  Stevens  Creek  Blvd.,  B3-C 
Cupertino,  California  95014 
(408)  996-1010 


Order  Form 

□  Please  send  me  an  Apple  II  System 

□  Board  Only 

with K  bytes  of  RAM  (4K  minimum)  at  $. 

California  Residents  add  6.5%  tax 


Total  $. 


Name  _ 
Address 
City 


.Zip 


State  

Phone  

Shipping  Address  (if  different) 


□  Cashier's  check  or  money  order  enclosed. 

(Please  allow  2  additional  weeks  for  personal  checks.) 
Please  charge  to  my 

□  BankAmericard 

□  VISA 

□  Master  Charge 

Card  Number : 

Expiration  Date  

Signature  

Mail  to:  Apple  Computer  Inc.,  20863  Stevens  Creek 
Blvd.,  B3-C,  Cupertino,  California  95014 


Circle  7  on  inquiry  card. 


Photo  1:  Two  different  shots  from  the  balcony  of  the  Civic  Auditorium  show  the  extent  of  the  crowd.  At  the  end  of  the  show, 
chaircreature  Jim  Warren  announced  that  12,800 people  had  attended. 

Random  Observations  and  Conversations 
at  the  First  West  Coast  Computer  Faire 


Notes  and  Photos  by  Lawrence  F  Willard 

The  kids  monopolized  the  computer 
games  most  of  the  time,  and  were  better  in 
their  scoring  than  most  of  the  adults.  Said 
one  man  to  another: 

"Those  kids  have  been  at  the  keyboard 
for  1 5  minutes;  shall  we  push  'em  out  of  the 
way?" 

"No,"  said  the  other.  "They're  doing  a 
helluva  lot  better  than  I  know  I  could  do." 

There  were  several  variations  of  Star  Trek 
in  evidence.  At  the  Processor  Technology 
booth  one  frustrated  kid  kept  getting  this 
printout  whenever  he  entered  a  command: 

"Captain,  I'm  afraid  your  last  command 
made  no  sense." 

He  was  lucky.  A  kid  about  12  years  old 
playing  Star  Trek   at   the  Vector  Graphic 


Inc  booth  apparently  made  a  king  sized  error 
and  got  this  printout: 

"Thanks  to  your  bungling  the  galaxy  has 
been  destroyed  by  the  Klingon  War  Fleet. 
You  are  demoted  to  cabin  boy.  Try  again." 

The  boy  turned  around  and  saw  me 
watching  him. 

"Don't     say     anything,"     he     growled. 

These  games  reveal  a  lot  about  people  to 
dedicated  people  watchers  like  me.  At  the 
National  Semiconductor  booth  a  computer 
was  set  up  to  plot,  on  a  screen,  a  graph  of 
the  player's  physical,  emotional  and  intellec- 
tual cycles.  You  were  asked  to  key  in  your 
birth  date  and  to  indicate  over  how  many 
days  you  wanted  the  chart  plotted.  I  noted, 
curiously,  that  some  people  used  arbitrary 
dates  or  somebody  else's  birth  date  rather 
than  their  own.  Are  some  people  reluctant 


Larry  Willard,  who 
writes  regularly  for 
Yankee  magazine  (Dublin 
NH),  acted  as  BYTE's  rov- 
ing eye  at  the  First  West 
Coast  Computer  Faire  held 
in  San  Francisco's  Civic 
Auditorium  on  April  16 
and  17  of  this  year.  Here 
are  Larry's  notes  on 
Random  Observations  and 
Conversations  at  the  event. 


Photo  2:  The  mild,  unassuming 
roll  top  desk  at  the  left  of  this 
sequence  hides  an  intelligence. 
For,  when  all  the  doors  and 
slides  of  this  "desk"  by  RDC  En- 
terprises (8352  Stanford  Av, 
Garden  Grove  CA)  are  opened, 
they  reveal  an  experimenter- 
oriented  computer  with  built-in 
Altair  bus  extender  card  at  desk 
level,  a  keyboard  at  desk  level 
and  video  monitor.  The  actual 
computer  mainframe  is  below 
desk  level  behind  doors,  and  the 
bottom  drawer  can  hold  the  ex- 
perimenter's tools. 


25 


Rich  Man,  Poor  Man,  Merchant,  Physician, 

Teacher,  Lawyer,  Student,  Musician.... 


There's  MICOM  Floppy  Disk 
System  for  Everyone! 


More  Uses 

People  from  every  walk  of  life  are 
adding  iCOM®  Floppy  Disks  to  their 
microcomputers  for  such  diverse 
tasks  as  payroll,  inventory  control, 
mailing  lists,  game  playing,  record 
keeping,  parts  ordering  .  .  . 

We've  uncovered  some  innovative 
applications,  too:  The  sailboat  architect 
who  puts  equations  and  algorithms  on 
an  iCOM  disk  to  test  his  nautical 
theories ;  the  student  who  has  auto- 
mated a  bowling  alley;  the  iCOM 
dealer  who  designed  an  environmental 
control  system  for  a  university. 

More  Speed 

These  users  have  found  iCOM 
floppies  to  be  much  faster  and  more 
versatile  than  cassette  or  paper  tape. 
WithiCOM, 
programs  can 
be  loaded  in 
seconds;  files 
updated  in 
minutes; 
hundreds  of 
programs  can 
be  stored  on   j 
a  single  disk.  I 


More  Models 

iCOM  has  Frugal  Floppies™,  Dual 
Floppies,  Microfloppies™  (using  the 
new  5  Vi "  diskette),  and  other  new 
approaches  to  floppy  disk  systems. 
Each  is  hardware  and  software 
compatible  with  Altair™,  IMSAI,  Poly 
88,  Sol-20  and  other  microcomputers 
using  the  Altair  S-100  bus  format. 


More  Software 

Then  there's  iCOM's  famous 
software:  Powerful  field-proven 
FDOS-II  with  macro-assembler,  string- 
oriented  text  editor,  and  file  manager. 
Plus  easy-to-use  compatible  8K  Disk 
BASIC.  Each  with  super  features  such 
as :  named  variable  length  files,  auto- 
file  create,  open  and  close,  multiple 
merge  and  delete  .  .  .  and  more. 


More  Backup 

We've  been  building  floppies  for 
microcomputers  for  more  than  3  years . 
Long  before  the  rest.  Thousands  of 
systems  are  operating  perfectly  in  the 
field.  And  we're  part  of  Pertec 
Computer  Corporation,  one  of  the 
largest  manufacturers  of  peripherals, 
microsystems,  data  entry  products 
and  data  processing  systems.  We'll  be 
around  whenever  you  need  us. 

More  Dealers 

Maybe  not  in  quantity,  but  in  quality. 
We've  chosen  our  dealer  network 
carefully  to  assure  you  of  assistance 
every  step  of  the  way.  Our  prices  are 
right.  Our  delivery  is 
fast.  Our  dealers  are 
experienced  and 
knowledgeable. 


Must  Reading 

Our  free  booklet, 
"What  a  Floppy  Disk 
Can  Do  for  You" 
is  must  reading. 
Send  for  yours  today 
or  visit  your  dealer. 


po 


v* 


•*«*• 


V3*. 


B* 


(*» 


0f& 


©  1 97  7.  Pertec  Compuler  Corporation 


v® 


miCROPERIPHERRlS 


a  division  of  Pertec  Computer  Corporation 


6741  Variel  Ave.,  Canoga  Park,  CA  91303    U.S.A. 
Tel .  (213)  348-1391  TWX  910-494-2788 


There's  an  iCOM 

for  Everyone 

at  these 

Computer  Stores... 


ARIZONA 

INDIANA 

Byte  Shop 

Data  Group 

Tempe 

IndianaDolis 

(602)894-1129 

(317)842-2983 

CALIFORNIA 

KENTUCKY 

Orange  Computer  Ctr. 

Cybertronics 

Costa  Mesa 

Louisville 

(714)646-0221 

(502)499-1551 

Byte  Shop 
Lawndale 

MASSACHUSETTS 

(213)371-2421 

American  Used 

Computer 

Byte  Shop 

Boston 

Mt.  View 

(617)261-1100 

(415)969-5464 

Computer  Mart 

MINNESOTA 

Orange 

Microprogramming 

(714)633-1222 

Burnsville 

Byte  Shop 

(612)894-3510 

Pasadena 

NEW  HAMPSHIRE 

(213)684-3311 

Computer  Mart 

Byte  Shop 

Nashua 

Santa  Barbara 

(603)  883-2386 

(805)966-2638 

NEW  JERSEY 

Byte  Shop 
Santa  Clara 

Computer  Mart 
Iselin 

(408)  249-4221 

(201)283-0600 

Byte  Shop 
San  Diego 

NEW  YORK 

(714)565-8008 

Synchro  Sound 

Hollis 

Byte  Shop 
San  Rafael 

(212)468-7067 

(415)457-9311 

Computer  Mart 

NYC 

(212)686-7923 

Computer  Room 
San  Jose 

(408)  226-8384 

NORTH  CAROLINA 

Byte  Shop 

Digital  Dynamics 

Tarzana 

Charlotte 

(213)343-3919 

(704)374-1527 

Tech-Mart 

PENNSYLVANIA 

Tarzana 

(213)344-0153 

Byte  Shop 

Brymar 

Byte  Shop 

(215)525-7712 

Thousand  Oaks 

(805)  497-9595 

SOUTH  CAROLINA 

Byte  Shop 

Carolina  Computers 

Walnut 

Columbia 

(415)933-6252 

(803)  798-6524 

Byte  Shop 

TEXAS 

Westminster 
(714)894-9131 

Microstore 

Richardson 

COLORADO 

(214)231-1096 

Prime  Radix 

Microtex 

Denver 

Houston 

(303)  573-5942 

(713)780-7477 

FLORIDA 

Computer  Terminal 
El  Paso 

Byte  Shop 

(915)542-1638 

Miami 

(305)  264-2983 

WISCONSIN 

The  Computer  Store 

Madison  Computer 

Jacksonville 

Madison 

(904)725-8158 

(608)  255-5552 

ILLINOIS 

CANADA 

Itty  Bitty  Machine 

Computer  Mart 

Evanston 

Toronto 

(312)328-6800 

(416)484-9708 

Numbers  Racket 

Computer  Place 

Champaign 

Toronto 

(217)352-5435 

(416)598-0262 

Champaign  Computer 

Champaign 

(217)359-5883 

miCROPERIPHERfllS 

6741  Varlel  Ave.,  Canoga  Park,  CA  91303  U.S.A. 

Tel.  (213)  348-1391      a  divison  of  Pertec  Computer  Corporation 


O 

oo 


Photo  3:  The  kid  at  the  keyboard  of  this  I  MSA  I  8080  under  the 
watchful  eye  of  Lynn  Stone  is  Bob  Bowdige,  a  fifth  grader  at 
Rollingwood  School  in  San  Bruno.  A  t  this  school,  200  students 
each  week  study  BASIC  programming.  The  school  was  invited  to 
become  part  of  the  exhibit  at  the  Action  Audio  Electronics  booth 
at  the  show. 


to  know  what  their  cycles  are,  or  are  they 
reluctant  to  have  other  people  see  when 
their  highs  and  lows  occur,  a  privacy  thing, 
perhaps?  Anyway,  I  saw  a  pretty  young  lady 
who  couldn't  be  out  of  her  20s  key  in  a 


Photo  4:  Victoria  Van 
Buskirk,  10,  with  her 
father  Thomas,  a  pro- 
grammer at  Lockheed  in 
Sunnyvale  CA,  in  the  Re- 
creational Computer 
Centers  booth.  Tom,  with 
his  interests  in  computer 
games  and  home  account- 
ing problems,  plans  to 
acquire  a  computer. 


27 


Photo  5:  The  husband  and  wife  team  of  Ellen  and  Allen  Penn  (he's  president, 
she's  VP  and  secretary  of  Sylvanhills  Laboratory  Inc,  I  Sylvanway,  Box  239, 
Strafford  MO  65757)  demonstrate  computer  controlled  plotters  to  Dick 
Speer  of  Northwest  Computer  Cinema.  (For  more  details  on  the  plotter  kit, 
see  BYTE  January  1977  page  85.)  Dick  has  a  6502  based  computer  similar 
to  the  KIM  which  the  Penns  are  using  in  this  setup;  he  wants  to  use  it  for 
computer  controlled  graphics. 


birth  date  of  October  9  1912.  An  arbitrary 
date?  The  birth  date  of  a  parent?  Only  she 
knows.  The  computer  took  a  fair  amount  of 
time  to  figure  it  all  out,  but  finally  traced 
the  patterns  on  the  screen  for  a  20  day  per- 
iod. 

At  the  Advanced  Technology  Research 
Associates  booth  there  were  flashing  space 
jewels  and  Plexiglas  ray  guns  that  lit  up  with 
a  pulsing  bright  colored  light  when  the  trig- 
ger was  pulled.  These  fascinated  kids  and 
grownups  alike,  only  at  24  bucks  and  on  up 
the  kids  weren't  buying.  The  older  people 
were,  though.  I  asked  one  guy  what  he 
planned  to  use  his  space  ray  gun  for. 

"I'm  a  magician,"  he  said.  "I'll  find  a  use 
for  it  on  stage." 

Another  guy  wanted  to  know  if  the  space 
jewels  were  waterproof.  He  thought  it  might 
be  interesting  to  drop  one  of  the  little  flash- 
ing pendants  into  his  tropical  fish  tank,  or 
into  a  pitcher  of  his  favorite  iced  beverage. 
They  aren't  waterproof;  the  battery  com- 
partment would  be  flooded. 

Like  a  lot  of  other  people,  I  had  a  com- 
puter portrait  made— you  stand  in  front  of  a 
TV  camera,  your  image  is  held  on  the  TV 


28 


OUR  DEALERS 


NORTHEASTERN  STATES 

Computer  Workshop,  Rockville,  MD;  Computer  Mart, 
Waltham,  MA;  Iselin,  NJ;  Hoboken  Computer  Works, 
Hoboken,  NJ;  Audio  Design  Electronics,  New  York, 
NY;  Byte  Shop  East,  Levittown,  NY;  Computer  Corner, 
White  Plains,  NY;  Computer  Enterprises,  DeWitt,  NY; 
Fayetteville,  NY;  Computer  Mart  ot  New  York,  New 
York,  NY;  Computer  Shoppe,  Middle  Island,  NY;  Ithaca 
Audio,  Ithaca,  NY;  Byte  Shop,  Bryn  Mawr,  PA;  Personal 
Computer  Corp.,  Frazer,  PA 

SOUTHEASTERN  STATES 

Computer  Hut,  Hialeah,  FL;  Delta  Electronics,  Leesburg, 
FL;  Douglas  Computer  Systems,  Jacksonville,  FL; 
Economy  Computing  Systems,  Orlando,  FL;  Electronic 
Shop  Inc.,  Melbourne,  FL;  Microcomputer  Systems  Inc., 
Tampa,  FL;  Computer  Systems  Center,  Atlanta,  GA; 
Computer  Electronics,  Baton  Rouge,  LA;  Byte  Shop, 
Columbia,  SC 

MIDWESTERN    STATES 

American  Microprocessors,  Prairie  View,  IL;  Bits  and 
Bytes,  Posen,  IL;  Itty  bitty  machine  company,  Evanston, 
IL;  Lllllpute  Computer  Mart,  Skokie,  IL;  Numbers 
Racket,  Champaign,  IL;  Data  Domain,  Bloomington,  IN; 
Home  Computer  Center,  Indianapolis,  IN;  Micro  Bus 
Inc.,  Cedar  Rapids,  IA;  Data  Domain,  Louisville,  KY; 
Computer  Mart,  Royal  Oak,  Ml;  Computer  Systems, 
St.  Clair  Shores,  Ml;  General  Computer,  Troy,  Ml; 
Computer  Depot,  Minneapolis,  MN;  Computer  Room  Inc., 
Eagan,  MN;  High  Technology,  Oklahoma  City,  OK; 
Milwaukee  Computer  Store,  Milwaukee,  Wl 

WESTERN    STATES 

Bits  &  Bytes  Computer  Shop,  Phoenix,  AZ;  Personal 
Computer  Place,  Mesa,  AZ;  Affordable  Computer  Store, 
Santa  Clara,  CA;  A-VIDD  Electronics,  Long  Beach,  CA; 
Bits  n  Bytes,  Fullerton,  CA;  Byte  Shop,  Burbank,  CA; 
Fresno,  CA;  Lawndale,  CA;  Long  Beach,  CA;  Palo  Alto, 
CA;  Pasadena,  CA;  Placentia,  CA;  San  Diego,  CA;  San 
Jose,  CA;  San  Rafael,  CA;  Santa  Clara,  CA;  Tarzana,  CA; 
Thousand  Oaks,  CA;  Walnut  Creek,  CA;  Westminster, 
CA;  Computer  Center,  Costa  Mesa,  CA;  Computer 
Center,  San  Diego,  cA;  Computer  Components,  Van 
Nuys,  CA;  Computer  Electronics,  Santa  Barbara,  CA; 
Computer  Emporium,  Newport  Beach,  CA;  Computer- 
land,  San  Leandro,  CA;  Computer  Mart,  Orange,  CA; 
Computer  Playground,  Westminster,  CA;  Computer 
Power  and  Light,  Studio  City,  CA;  Computer  Store  ot 
San  Francisco,  San  Francisco,  CA;  Dunston  Enter- 
prises, Redding,  CA;  Executive  Office  Equipment, 
Pasadena,  CA;  Micro  Computers,  Fountain  Valley,  CA; 
Microsystems  Engineering,  San  Francisco,  CA;  Sunny 
Sounds,  San  Gabriel,  CA;  Sunshine  Computer,  Carson, 
CA;  Upland  Computer  Labs,  Upland,  CA;  Xlmedla, 
San  Francisco,  CA;  Byte  Shop,  Boulder,  CO;  Engle- 
wood,  CO;  Mighty  Mini  Company,  Denver,  CO;  Micro- 
computer Systems  of  Hawaii,  Honolulu,  HI;  Small 
Computer  Systems,  Honolulu,  HI;  Computer  Mart  of 
West  Texas,  Lubbock,  TX;  Computer  Shop,  San  Antonio, 
TX;  Computer  Terminal,  El  Paso,  TX;  Electronic  Specialty, 
Houston,  TX;  Houston  Computer  Mart,  Houston,  TX; 
KA  Electronic  Sales,  Dallas,  TX;  Micro  Store,  Richard- 
son, TX;  Vanguard  Systems,  San  Antonio,  TX 

FOREIGN 

Microtech  Computers,  Winnepeg,  Manitoba,  Canada; 
Haywood  Electronic  Associates  Ltd.,  Northwood, 
Middlesex,  England;  Instrumatlc,  Geneva,  Switzerland. 


cch  g3A?hc  inc. 


790    HAMPSHIRE    ROAD     •     A     +     B 

WESTLAKE    VILLAGE,     CA     91361 

Not  Affiliated  With  Vector  General 

Circle  9  on  inquiry  card. 


THE  PERFECT  MICROCOMPUTER 


'*«*«»*«*. 


cCC031 

■   ■ 


It's  a  two  touch  affair 


VECTOR  1  is  based  on  the  8080A  Microprocessor  and  S-100  Bus  - 
EASY  TO  ASSEMBLE,  EASY  TO  ACCESSORIZE,  EASY  TO  BUY  AND  VERY  EASY  TO  OPERATE. 


lOR  G=?APHC  illC. 


717  LAKEFIELD  ROAD,  SUITE  F 
WESTLAKE  VILLAGE,  CA  91361  •  (805)  497-0733 


Photo  6:  Terry  Belcher  of 
Advanced  Technology  Re- 
search studies  a  map  of 
world  conquest  for  the 
color  video  game  "Risk" 
which  was  being  run  at  the 
Compucolor  booth. 


screen  until  it  can  be  scanned  for  a  computer 
printout.  In  about  a  minute  the  printer  rolls 
it  out  and  it  is  torn  off  and  handed  to  you. 
The  guy  in  front  of  me  in  line  made  a  pro- 
duction out  of  it.  He  was  bearded,  and  he 
wanted  a  profile  shot  with  a  pipe  in  his 
mouth  and  his  hand  up  to  it  in  a  studied 
pose.  He  explained  that  he  wanted  it  for  his 
office  door. 

There  were  a  couple  of  booths  playing 
computer  music  and  the  sound  was  great, 
even  if  the  repertoire  was  a  bit  limited. 
About  the  15th  or  so  time  you've  heard  a 
particular  tune  during  the  day  you  can  draw 
the  waveforms  of  each  note.  But  the  perfor- 
mance was  pretty  good.  Solid  State  Music's 
booth  was  playing  such  tunes  as  "The  Flight 
of  the  Bumblebee,"  Bach's  "Little  Fugue  in 
G  Minor,"  "Blues  in  F,"  "It's  a  Small 
World,"  and  "Maple  Leaf  Rag."  Try  those 
on  your  computer. 

Footweary  after  awhile,  I  went  into  the 
cafeteria,  got  some  coffee,  and  sat  down  at 
a  table  and  got  into  a  conversation  with  two 
men  sitting  there.  They  were  Manabu 
Uyehara  and  George  M  Hirota,  who  have  the 
Radio  Shack   franchise  in  Honolulu.  They 


had  flown  to  San  Francisco  especially  for 
the  Faire.  Both  men  have  had  previous  com- 
puter experience,  and  they  are  anxious  to 
carry  computers  in  their  store. 

I  moved  to  another  table  and  met  Scott 
M  Dickson,  a  computer  programmer  in  the 
dental  school  of  the  University  of  Michigan. 
He  wants  a  computer  to  experiment  with. 
He  thinks  dentists  could  use  them  for  pa- 
tients' records  and  for  billing. 

Coming  from  the  cafeteria  I  stopped  at  a 
booth  offering  a  selection  of  fine  prints  and 
etchings  done  in  sort  of  a  science  fiction-fan- 
tasy style.  One  of  them,  I  thought,  would 
look  especially  fine  in  my  study.  Before  I 
could  ask  how  much  it  was,  somebody  else 
did. 

"Six-fifty,"  said  the  young  artist. 

Real  reasonable,  I  thought,  and  moved 
forward  to  buy  one. 

The  man  who  had  asked  how  much,  then 
asked: 

"Six  hundred  and  fifty  dollars?" 

The  artist  said  that  was  correct. 

I  walked  away. 

That's  more  than  most  of  the  computers 
were  selling  for." 


Photo  7:  Some  floor  shots. 


1  rtCHMCAl 
[MWJN 
-LM*t 


IS  YOUR  DOLLAR  BUYING 

AS  MUCH  POWER  &  FLEXIBILITY 

AS  TDL'S  XITAN  SYSTEMS  PROVIDE? 


OUR  CUSTOMERS  SAY 

THINGS  LIKE  THIS 

ABOUT  TDL  PRODUCTS: 


"...  the  best  CPU  board  I've  put  i(»jjt'tfH"f . . .  exeellenl  parts ... . 

IRC 

C  ,Hiil)ri(ii;c,  Mass. 

KMM 

Bella  Vista,  Ark. 

"...  hif»h  quality  components,  good  engineering  &  complete 

WP 

Seattle,  Wash. 

Col.  L)WW 

Santa  Maria,  Calif. 

SK-L 

Boston,  Mass. 

alpha  1 


When  we  combined  our  highly  praised  /PU  board  and  our  System  Monitor  Board,  we 
defined  the  standard  for  the  industry;  we  integrated  more  power  and  flexibility  in  two  slots  of 
our  motherboard  than  most  other  systems  can  muster  using  five  or  more  boards.  When  we 
put  this  setup  into  our  rugged  aluminum  case  we  created  the  first  XITAN  system,  the  alpha  1. 
By  adding  a  CRT  terminal  and  or  teleprinter  you  will  have  a  complete  computer  system. 

KIT:   $76!)     ASSEMBLED  &  TESTED:   $1039 


XITAN 

*      alpha  2 


i  ■:*'*■ 


,rt 


By  adding  a  ZI6  memory  module  and  our  PACKAGE  A  software  to  the  alpha  1  we  created  a 
second  XITAN  system,  the  alpha  2.  Thus,  a  complete  and  extremely  powerful  micro-computer 
system  emerges  well  worthy  of  you  who  are  operating  at  the  most  sophisticated  levels.  The 
XITAN  alpha  2  provides  you  with  18K  of  RAM,  2K  of  ROM,  2  serial  I  O  ports,  1  parallel  I  O 
port,  our  1200  baud  audio  cassette  interface  as  well  as  our  extraordinarily  powerful  software 
package  which  includes  8K  Basic,  the  Text  Output  Processor,  the  /apple  Text  Editor  and  the 
Relocating  Macro-Assembler.  Add  your  own  I  O  device  and  GO... with  the  most  powerful 
and  flexible  micro-computer  package  ever  offered. 

KIT:   $t369     ASSEMBLED  &  TESTED:   $1749 


IF  YOU  ARE  A  BEGINNER,  YOU  WON'T  EASILY  OUTGROW  THE  XITAN  SYSTEM. 
IF  YOU  ARE  AN  ADVANCED  USER,  YOU  WILL  DISCOVER  XITAN  IS  EXACTLY  WHAT  YOU  NEED. 

Circlu  1 1)  on  inquii  s  card. 

'Write  for  descriptive  brochure  on  the  XITAN  alpha  series 
and  system  software.   When  you  ask  at  your  dealer,  say  "ZY-TAN." 


ORDERING  INFORMATION:  Send  check,  money  order  or  BankAmericard,  Master  Charge 
current  number  and  expiration  dale.  Shipping  is  usually  made  via  UPS  or  UPS  Blue  Label. 
Specify  other  arrangements  if  you  wish.  Prepaid  orders  are  shipped  postpaid. 


RESEARCH  PARK      8LDGH      1  101  STATE  ROAD 
PRINCETON,  NEW  JERSEY  08540     (6091  9210321 


What's 

New? 


A  New  16  Bit  Personal  Computing 
System 


EBNEK  Inc,  254  N  Washington  St, 
Wichita  KS  67202,  has  recently  an- 
nounced   the    new    EBNEK    77   system. 


This  system,  available  for  $2770  in 
kit  form  or  $3800  assembled  and  tested, 
features  the  16  bit  TMS9900  processor 
manufactured  by  Texas  Instruments 
Inc.  What  EBNEK  has  done  is  to  design 
a  finished  package  around  the  TMS9900 
with  the  following  characteristics: 

•  TMS9900  processor  board. 

•  16  K  bytes  of  programmable 
memory  on  two  8  K  byte  boards. 

•  8  K  bytes  of  EROM  socket 
capacity  on  one  board,  with  2  K 
bytes  of  operating  system  soft- 
ware supplied  (ie:  room  for  6  K 
bytes  of  user  defined  EROM 
programs). 

•  Video  display  board  with  tele- 
vision monitor. 

•  IO  interface  board  with  keyboard 
interface,  eight  bits  of  parallel 
IO,  serial  data  port  with  data  rate 
generator,    and    cassette    modem. 

•  Cabinet  and  power  supply 
motherboard. 

•  Phi-Deck  tape  transport  with 
firmware  support. 

•  'ASCII  keyboard  and  case. 

The  design  of  the  system  is  modular, 
with  an  addressing  space  limitation 
of  64  K  bytes,  and  a  design  limit  of 
128  K  bytes  using  memory  bank  switch- 
ing. (Power  adequate  for  a  full  128  K 
bytes  is  provided  as  a  standard  feature 
according  to  the  company.) 


Cabinets 
for  Electronic  Systems 

CX-9  Series 


Standard  cabinets  for 

monitors,  keyboards, 

and  electronic  systems. 

Steel  and  aluminum  construction. 

Use  cabinets  individually  or 

interlock  to  form  complete  systems. 

Call  or  write  for  complete  catalog. 

V>lf»)  BACKER-LORING  CORPORATION 

I  A^AwJ    65  WALNUT  STREET,  PEABODY,  MASS.  01960    •    617-531-3600 


The  video  display  provides  15  lines 
of  either  32  .or  64  characters,  generated 
with  a  7  by  9  dot  matrix.  The  display 
also  has  a  point  graphics  mode  allowing 
a  256  by  240  dot  display  driven  from  an 
8  K  byte  segment  of  main  memory. 
The  display  and  processor  are  inter- 
leaved so  that  operation  of  the  proc- 
essor does  not  break  up  the  picture 
with  visual  hash,  allowing  programmed 
updates  to  occur  while  information  is 
being  displayed. 

This  product  looks  like  a  significant 
one  for  the  personal  computing  user 
who  wants  the  ultimate  in  microproc- 
essor execution  speed  and  performance. 
The  TMS9900  architecture  includes  16 
general  purpose  work  areas  at  arbitrary 
memory  locations  which  use  a  short 
form  of  addressing.  It  has  the  unique 
characteristic  of  built-in  multiply  and 
divide  operations  which  take  (worst 
case  without  wait  states,  using  3  MHz 
clock)  17  and  41  us  to  evaluate  32  bit 
results  of  16  bit  operands.  Individuals 
with  real  time  computational  applica- 
tions (as  in  voice  recognition,  scene 
analysis,  electronic  music  generation) 
will  find  the  9900  architecture  quite 
useful.  In  addition  to  the  physical  con- 
figuration, EBNEK's  announcement  of 
the  EBNEK  77  describes  availability 
of  an  assembler,  editor,  utilities  and  a 
user's  software  library." 

Circle  631  on  inquiry  card. 


Polyphonic  Music  Generator  Board 

A  new  interface  board  designed 
for  music  generation  called  the  SRS-320 
has  been  announced  by  Stillman  Re- 
search Systems,  POB  14036,  Phoenix 
AZ  85063,  for  $175.  The  board,  which 
can  serve  as  the  basis  for  a  computerized 
music  synthesizing  system,  is  Altair 
bus  compatible  and  can  generate  up  to 
four  musical  notes  simultaneously  over  a 
four  octave  range.  This  is  sufficient  to 
generate  most  elementary  chords  and 
inversions.  The  SRS-320  is  priced  at 
$175,  and  a  demonstration  cassette  of 
the  board  is  available  for  $3,  as  well  as 
a  variety  of  other  music  generation 
electronics." 

Circle  632  on  inquiry  card. 


New  Vector  Catalog  Available 

Vector  Electronic  Company  Inc's 
1977  catalog  is  now  available,  listing 
prices  and  descriptions  of  the  entire 
Vector  product  line,  including  printed 
circuit  cards,  terminals  and  pins,  bread- 
boarding  kits,  wiring  pencils  and  so 
on.  Of  special  interest  to  the  computer 
experimenter  is  the  company's  new  cord- 
less rechargeable  wire  wrap  tool  called 
Wrap  and  Strap.  The  catalog  is  avail- 
able free  from  Vector  Electronic  Com- 
pany Inc,  12460  Gladstone  Av,  Sylmar 
CA  91342,  and  no  serious  experimenter 
would  want  to  be  without  it." 

Circle  633  on  inquiry  card. 


Circle  1 1  on  inquiry  card. 


32 


The  POLY  88 
Microcomputer  System 


PolyMorphic  Systems  now  offers  the  complete,  assembled, 
personal  computer  system— the  POLY  88  System  1 6.  A  full 
1 6K  system  with  high  speed  video  display,  alphanumeric 
keyboard,  and  cassette  program  storage.  A  BASIC  soft- 
ware package  providing  the  most  advanced  features  avail- 
able in  the  personal  computing  market.  Features  like  PLOT 
and  TIME,  which  utilize  our  video  graphics  and  real-time 
clock.  Others  like  VERIFY,  so  that  you  know  your  tape  is 
good  before  you  load  another.  Or  input  type-ahead  so  you 
can  tell  your  program  to  run  while  the  tape  is  still  loading  (it 
stores  up  to  64  characters  of  commands  or  question  re- 
sponses to  be  executed).  All  these  plus  a  complete  pack- 
age of  scientific  functions,  formatting  options,  and  string 
capabilities.  With  the  POLY  88  System  1 6  you  can  amaze 
your  timesharing  friends  the  very  first  night! 

Polymorphic  Systems  11 K  BASIC  —     Size:  1 1 K  bytes. 

Scientific  Functions:  Sine,  cosine,  log,  exponential,  square  root, 
random  number,  x  to  the  y  power. 

Formatted  Output  •  Multi-line  Function  Definition  •  String 
Manipulation  and  String  Functions  •  Real-Time  Clock  •  Point- 
Plotting  on  Video  Display  •  Array  dimensions  limited  by  mem- 
ory •  Cassette  Save  and  Load  of  Named  Programs  •  Multiple 
Statements  per  Line  •  Renumber  •  Memory  Load  and  Store  • 
8080  Input  and  Output  •  If  Then  Else  •  Input  type-ahead. 


Commands:  RUN,  LIST,  SCR,  CLEAR,  REN,  CONTINUE 
Statements:  LET,  IF,  THEN,  ELSE,  FOR,  NEXT,  GOTO,  ON,  EXIT, 
STOP,  END,  REM,  READ,  DATA,  RESTORE,  INPUT,  GOSUB,  RE- 
TURN, PRINT,  POKE,  OUT. 

Built  In  Functions:  FREE,  ABS,  SGN,  INT,  LEN,  CHR$,  VAL,  STR$, 
ASC,  SIN,  COS,  RND,  LOG,  TIME,  WAIT,  EXP,  SORT,  CALL,  PEEK, 
INP,  PLOT. 

Systems  Available.  The  POLY  88  is  available  in  either  kit  or  as- 
sembled form.  It  is  suggested  that  kits  be  attempted  only  be  per- 
sons familiar  with  digital  circuitry. 

System  2:  is  a  kit  consisting  of  the  POLY  88  chassis,  CPU,  video 
circuit  card,  and  cassette  interface.  Requires  keyboard,  TV  moni- 
tor, and  cassette  recorder  for  operation.  $735 
System  16:  consists  of  an  assembled  and  tested  System  2  with 
1 6K  of  memory,  keyboard,  TV  monitor,  cassette  recorder,  1 1 K 
BASIC  and  Assembler  on  cassette  tapes.  $2250. 
System  0:  The  circuit  cards  an  S-1 00  mainframe  owner  needs  to 
be  compatible  with  the  POLY  88  software  library.  System  0  con- 
sists of  the  central  processor  card  with  monitor  ROM,  the  video  cir- 
cuit card,  and  cassette  interface,  all  in  kit  form.  $525. 

Prices  and  specifications  are  subject  to  change  without  notice. 
California  residents  add  6%  sales  tax. 


460  Ward  Drive 

Santa  Barbara,  Ca.  93111 

(805)  967-2351 


Technical 
Fopuro 


Peter  G  Formaniak 

David  Leitch 

Mostek 

POB  169 

Carrollton  TX  75006 


A  Proposed  Microprocessor 


Software  Standard 


Many  people  are  concerned  about  the 
need  for  standardization  in  the  microproc- 
essor industry.  One  obvious  source  of 
standards  is  people  who  are  seriously  de- 
signing and  supporting  microprocessors. 
The  following  text  was  provided  by  Mostek 
to  document  one  interchange  standard 
intended  for  the  Mostek  version  of  the 
Z-80  processor.  The  text  was  written  by 
Peter  Formaniak  and  David  Leitch  and  was 
distributed  without  copyright.  The  standard 
is  intended  to  be  an  upwards  compatible 
extension  of  the  original  Intel  8080  object 
code  format,  with  provision  for  relocatable 
programs  and  linkage  of  separate  assemblies. 


Object  Output  Definition 

Each  record  of  an  object  module  begins 
with  a  delimiter  (colon  or  dollar  sign)  and 
ends  with  carriage  return  and  line  feed. 
A  colon  (:)  is  used  for  data  records  and  end 
of  file  indicator  for  Intel  compatibility.  A 
dollar  sign  ($)  is  used  for  records  containing 
relocation  information  and  linking  informa- 
tion. An  Intel  loader  will  ignore  such  infor- 
mation and  allow  loading  of  nonrelocatable, 
nonlinkable  programs.  All  information  is 
encoded  in  ASCII  format. 

Each  record  is  identified  by  a  "type." 
The  type  appears  in  the  eighth  and  ninth 
bytes  of  the  record  and  can  take  five  values. 
In  the  following  text  the  record  type  begins 
each  heading. 

•    Type  00:  Data  Record 


Byte 
number 

1 


Colon 


$     LABW03212A 


Description 

delimiter. 


defines  last  reference  to 
external  symbol  'LAB' 


2,  3  Number  of  (binary)  bytes  of  data 
in  this  record.  The  maximum  is  32 
binary  bytes  (64  ASCI  I  bytes). 

4,  5  Most  significant  byte  of  start 
address  of  data. 

6,  7  Least  significant  byte  of  start 
address  of  data. 


8,9 


10 


ASCII   zeros.  This  is  the  "record 
type"  for  data. 

data  bytes. 


Last  2        Checksum  of  all  bytes  except  the 

bytes  delimiter,  carriage  return,  and  line 

feed.  The  checksum  is  the  negative 

of  the  binary  sum  of  all  bytes  in 

the  record. 

CRLF        Carriage  return,  line  feed. 
•    Type  01 :  End-of-file  Record 


Byte 

number 

Description 

1 

Colon  (:)  delimiter. 

2,3 

ASCII  zero. 

4,5 

Most     significant     byte     of     the 

transfer  address  of  the   program. 

This  transfer  address  appears  as  an 

argument  of  the  "END"  statement 

of  a  program.  This  Intel  standard 

may   prove  useful   in  higher  level 

language  programs. 

6,  7 

Least     significant     byte     of    the 

transfer  address. 

8,9 

Record  type  01 . 

CRLF 

Carriage  return,  line  feed. 

•    Type 

D2:  Internal  Symbol 

Object  Data 


Byte 
number  Description 

1  Dollar  sign  ($)  delimiter. 

2,  7  Up  to  6  ASCII  characters  of  the 
internal  symbol  name.  The  name 
is  left  justified,  blank  filled. 

8,  9        Record  type  02. 

10,13     Address   of   the   internal    symbol, 
most  significant  byte  first. 

14,15     Binary  checksum. 

CRLF     Carriage  return,  line  feed. 

Continued  on  page  62 


34 


Fantastic  Software 

This  LIBRARY  is  a  complete  do  it  yourself  kit.  Knowledge  of  programming  not  required.  EASY  to  read  and  USE 


Written     in     compatible     BASIC    immediately    executable    in     ANY 
computer  with  at  least  4K,  NO  other  peripherals  needed. 


VOLUME  I 


|BASIC 

SOFTWARE 
LIBRARY 


This  Library  is  the  most  comprehensive  work  of  its  kind  to  date. 
There  are  other  software  books  on  the  market  but  they  are 
dedicated  to  computer  games.  The  intention  of  this  work  is  to  allow 
the  average  individual  the  capability  to  easily  perform  useful  and 
productive  tasks  with  a  computer.  All  of  the  programs  contained 
within  this  Library  have  been  thoroughly  tested  and  executed  on 
several  systems.  Included  with  each  program  is  a  description  of  the 
program,  a  list  of  potential  users,  instructions  for  execution  and 
possible  limitations  that  may  arise  when  running  it  on  various 
systems.  Listed  in  the  limitation  section  is  the  amount  of  memory 
that  is  required  to  store  and  execute  the  program. 


Each  program's  source  code  is  listed  in  full  detail.  These  source  code 
listings  are  not  reduced  in  size  but  are  shown  full  size  for  increased 
readability.  Almost  every  program  is  self  instructing  and  prompts 
the  user  with  all  required  running  data.  Immediately  following  the 
source  code  listing  for  most  of  the  programs  is  a  sample  executed 
run  of  the  program. 


BASIC 

SOFTWARE 
'wv,„,  .LIBRARY 

:    Sat,,.  - 


VOLUME        III 


■■  IM- 


The  entire  Library  is  1100  pages  long,  chocked  full  of  program 
source  code,  instructions,  conversions,  memory  requirements, 
examples  and  much  more.  ALL  are  written  in  compatible  BASIC 
executable  in  4K  MITS,  SPHERE,  IMS,  SWTPC,  PDP,  etc.  BASIC 
compilers  available  for  8080  &  6800  under  $10  elsewhere. 


This  Library  is  destined  to  become  one  of  the  reference  bibles  for 
the  small  computer  field,  due  to  its  versatility  and  uniqueness  and 
the  ease  of  operation  of  the  programs  it  contains.  These  volumes  are 
deductible  as  a  business  expense  when  purchased  by  a  company. 
Send  your  remittance  for  prompt  delivery,  while  supplies  last. 
Volume  discounts  are  available  to  qualified  dealers. 


Bookkeeping 

Games 
Pictures 


S24.95 


VOLUME  II 

Math  &  Engineering 

Plotting  &  Stat 

Basic  Statement  Def. . . . 


S24.95 


VOLUME  III 

Advanced  Business 

Billing 

Inventory 

Payroll S39.95 

VOLUME  IV 

General  Purpose S9.95 

VOLUME  V 

Experimenter S9.95 


WtQssz^ 

■  *.«• 

^^XJpww 

JwPiPst' 

VpLUMKllyl 

v     ;m 

by      a.w.  llOWIf'™ 

1 

© 


FUTURE  ADDITION  TO  THE  "BASIC  SOFTWARE  LIBRARY" 

Volume  VI  (A  Complete  Business  System    S49.95)  General  Ledger  System  -  Taxes,  Pyrl, 
W-2's,  Inventory.  Depr.,  Financial  Statements,  etc.  AVAILABLE  MID  SUMMER 

Available  at  most  computer  stores. 

Add  S1.50  per  volume  for  postage  and  handling. 

SCIENTIFIC  RESEARCH 


1712-B  FARMINGTON  COURT 
CROFTON  MD  21114 

Phone  Orders  call  (800)  638  9194 
Information  and  Maryland  Residents  Call  (301)  721  1 148 


This  Circuit  Multiplies 


Tom  Hall 

8500  Cameron  Rd 

Austin  TX  78753 


Table 

1:  Power  wiring  for 

figures  1  and  2 

Type 

1-5  V 

GND 

IC1 

74161 

16 

8 

IC2 

74199 

24 

12 

IC3 

74199 

24 

12 

IC4 

7483 

5 

12 

IC5 

7483 

5 

12 

IC6 

7476 

5 

13 

IC7 

7400 

14 

7 

IC8 

7404 

14 

7 

We  all  know  that  algorithms  for  multipli- 
cation can  be  implemented  perfectly  well  in 
software.  But  such  programmed  approaches 
to  arithmetic  operations  can  often  prove 
quite  slow.  There  are  a  number  of  possible 
approaches  to  gaining  speed  in  operations 
involving  multiplication.  These  may  vary  all 
the  way  from  just  tightening  up  the  code  to 
putting  a  full  hardware  floating  point  arith- 
metic unit  into  the  processor.  The  latter  is 
often  expensive  and  difficult  to  build.  One 
approach  which  is  midway  between  these 
extremes  is  to  implement  the  "inner  loop" 
of  a  software  algorithm  as  some  special 
purpose  hardware.  An  example  of  this  tech- 
nique is  this  simple  binary  multiplier  which 
takes  two  bytes  of  information  and  supplies 
a  2  byte  product  value,  leaving  all  the  other 
functions  of  a  full  arithmetic  package  to 
software.  By  speeding  up  the  multiplication 
operation,  the  entire  arithmetic  software  will 
run  much  faster  whenever  it  involves  multi- 
plication. 

How  To  Do  Binary  Multiplication 

To  examine  the  operation  of  a  shift  and 
add  algorithm  for  multiplication,  let's  look 
at  the  multiplication  of  two  4  bit  bytes: 


14  =  multiplicand  (Y) 
x10  =  multiplier  (X) 


1110 
x1010 

0000 
1110 
0000 
1110 

10001100  =   140  =   product  (P) 

From    inspection    it   can    be    seen    that  the 
result  can  be  achieved  in  the  same  number  of 


steps  as  there  are  bits  in  the  byte  of  the 
multiplier,  and  that  the  answer  requires  as 
many  bits  as  the  number  bits  in  the  two 
bytes.  In  other  words,  two  4  bit  bytes 
generate  an  8  bit  product,  and  the  multipli- 
cation of  two  8  bit  bytes  generates  a  16  bit 
product.  Now,  by  further  inspection,  it  is 
possible  to  visualize  the  necessary  imple- 
mentation of  the  algorithm  with  hardware. 
First,  note  that  the  answer  requires  eight 
bits.  Let's  start  off  then  with  an  8  bit 
register  (P)  set  to  all  zeroes: 


°i  ° ■  °  i°  0,0,0,0     register  P 


Then  we'll  note  that  when  the  first  bit  to  be 
operated  within  the  multiplier  is  a  zero, 


1    0    I  ■ 


the  result  is  a  zero;  so  no  adding  is  necessary 
and  we  merely  shift  one  place  for  the  next 
operation.  Now  the  bit  to  be  operated  with 
is  a  one, 


10   10 


and  one  times  a  number  is  that  number;  so 
we  just  add  the  multiplicand  into  the  P 
register  as  follows: 


=  register  P 


0  0  0  0 
1     1     1 

0  0  0  0 
1     1     1 

+        1110 

0,0,0,1 

1,1,0,0 

new  P  value 


Then  we  shift  over  one  and  select  the  next 
bit  to  be  operated  on: 


10  10 


Since  it  is  a  zero,  only  a  shift  is  necessary. 
Then  we  operate  on  the  last  bit  of  the 
multiplier: 


0   1    0 


Figure  1:  Arithmetic  logic  of  multiplier.  The  X  and  Y  inputs  are  assumed  to  be  stable  throughout  the  multiplication.  The  P 
product  output  lines  are  stable  after  the  multiplication  is  completed.  The  single  bit  provided  by  IC6b  extends  the  product  shift 
register  by  one  bit.  Control  signals  for  the  operation  of  the  multiplication  are  ACLK  and  MST ART  generated  by  the  circuit  in 
figure  2. 


36 


37 


STATUS 
OUTPUTS 

<>- 


CONTROL 
INPUTS 
I 


DONE 


READY 


DONE      4 


t> 


START  16 


r1-^    CLOCK 


PRESET      C 

L 

J  A   0 

R 


K  0 

IC6a 
7476 


2 

A 


run 

LTL 

IC8 
7404 


7b       "Vj 

5         7400    y 


+  5V        +5V 

A  4 


MSB 


Ih 


O  > 8  COUNT  INPUT, 

-'  BINARY 

LSB 


RIPPLE    CLEAR         D  C  B  A 

CARRY 


LOAD 


ICI 

74161 

4   BIT   COUNTER 


ENABLE   ENABLE 

P  T  OD      CLOCK 


TO   FIGURE   I 


COUNTER 
CLOCK 

START 

READY 

ACLK 

MSTART 

RIPPLE   CA 

0         0 

TIMING  OF  MULTIPLICATION 
0          0           8        19        110       ill        112       !l3       >I4       115       lO          0 

0          0          0          0 
r~~ t      i     l     r    ■»     i — 

1       1       1 

-J      1 1      1 1      t_-J 

/             \V\  START  MUST   TURN  OFF  BY  THIS  TIME *-\ 

1                                                                                               f 

LtUULtULtLJULi 
©©©©©©©©© 
1     1 

3RY 

1 — 1 

TIME'S    ARROW—*- 

P  =   X  x  Y 

Transition 
ID 

1 
2 

3 
4 
5 
6 

7 
8 
9 

=  25  x    150 

Action 
LOAD  X.CLEAR 
ADD  Y 
SHIFT  P 
SHIFT  P 
ADD  Y 
ADD  Y 
SHIFT  P 
SHIFTP 
SHIFT  P 

Y   = 

Pl5 

0 
0 
0 
0 
0 
0 
0 
0 
0 

STATE  TABLE  FOR  150  X  25 

=  3750 

P6 

P5 

P4 

P3 

P2 

Pi 

Po 

sc 

1 

0 
0 

1 
1 

0 
0 
0 
0       P  =  3750 

1    0  0 

1    0   1 

1    0 

X     = 

0  0 

0    1 

1    0 

0    1 

Pl4 

0 
1 
0 
0 

1 
1 

0 
0 
0 

Pl3 

0 
0 

1 

0 
0 

1 
1 

0 
0 

Pl2 

0 
0 
0 

0 

P11 

0 

1 

0 
0 
0 
0 

1 
1 
1 

PlO 

0 
0 

1 

0 

1 
1 

0 

1 
1 

P9 

0 
1 
0 
1 
0 
0 

1 

0 

1 

P8 

0 

1 
1 

0 
0 
1 

0 

1 

0 

P7 

0 
0 

1 
1 

0 
0 

1 

0 

1 

0 

0 

0 

1 

1 

0 

0 

0 
0 

1 
1 

0 
0 

1 

0 

0 

0 

0 

1 

1 

0 

0 
0 

1 
1 

0 
0 

1 

0 

0 

0 

1 

1 

0 
0 

1 
1 

0 
0 

0 

0 

0 

1 

0 

0 

1 
1 

0 

0 

0 

0 

0 
0 

1 
1 

0 

0 

0 
0 

1 

0 
0 
0 

Figure  2:  Control  logic  of  multiplier.  The  control  logic  for  the  multiplier  generates  a  series  of  nine  clock  pulses  on  ACLK.  The 
first  pulse  coincides  with  the  high  state  of  the  MSTA  R  T signal,  and  is  used  by  the  arithmetic  logic  to  load  the  X  operand  into  the 
low  order  part  of  the  1 7  bit  output  shift  register  while  clearing  the  high  order  nine  bits,  PI 5  thru  P7.  On  successive  clock  cycles, 
the  arithmetic  logic  of  figure  7  either  shifts  the  product  righ  t  one  bit,  or  adds  the  Y  operand  with  the  resulting  sum  being  loaded 
with  a  I  bit  right  shift.  The  operation  of  a  typical  8  bit  multiplication  is  shown  in  the  state  table,  with  the  circled  numbers 
referring  to  clock  transitions  on  the  timing  diagram. 


38 


0,0,0,1 

1.1.0,0 

1110 

1,0,0,0 

i.i.o.o 

This  is  a  one;  so  we  again  add  the  multi- 
plicand into  the  P  register  into  the  position 
indicated  by  the  shift: 


register  P 


final  product 
in  P  register 

Thus,  the  product  is  generated. 

How  It  Works 

The  multiplication  logic  described  for  the 
4  bit  case  is  generalized  to  8  bit  operands 
with  a  16  bit  product  in  the  circuit  of  figures 
1  and  2.  The  multiplier  logic  of  this  design 
accepts  two  8  bit  bytes,  X  and  Y,  from 
which  it  generates  the  16  bit  product  P. 
After  the  start  signal,  a  mere  ten  clock 
periods  suffice  to  generate  the  product 
value.  Since  TTL  devices  are  utilized,  it  is 
possible  to  generate  the  result  in  less  than 
one  microsecond  by  using  a  fast  enough 
clock.  Practically  speaking  though,  with  the 
1  MHz  speed  of  the  typical  microprocessor 
clocks,  a  result  in  about  ten  microseconds 
will  be  quite  acceptable,  especially  when 
comparison  is  made  to  the  equivalent  pure 
software  approach. 

The  multiplier  unit  provides  optional 
ready  and  busy  lines  as  status  bits  for  the 
processor,  and  requires  a  free  running  clock 
plus  a  start  signal  from  the  processor.  The 
ready  and  busy  lines  can  be  ignored  entirely 
in  most  computers,  by  simply  making  sure 
that  one  or  two  instructions  are  executed, 
taking  ten  clock  periods  total  between  start 
of  a  multiply  and  reference  to  the  product 
value. 

The  Multiplication  Cycle 

Let  us  assume  that  the  unit  is  idle, 
waiting  for  an  input.  This  idling  situation  is 
shown  in  the  timing  diagram  of  figure  2  at 
the  left-hand  side.  At  idle,  the  BUSY  output 
will  be  low  and  the  READY  output  will  be 
high.  To  start  the  multiplication,  a  high  level 
is  placed  on  the  START  input  after  the  X 
and  Y  bytes  are  set  up  and  presented  to  the 
unit.  At  the  low  to  high  edge  transition  of 
the  next  clock  pulse  after  the  START  line  is 
raised,  the  READY  and  BUSY  lines  will 
change  state  as  flip  flop  IC6a  is  clocked. 
Within  eight  clock  times  of  these  transitions, 
the  START  level  should  be  brought  low 
again  to  keep  the  unit  from  restarting  the 
multiplication  upon  completion  of  opera- 
tion. These  transitions  raise  the  MSTART 
line  to  a  high  level,  which  causes  the  control 
counter  IC1  to  be  loaded  with  the  value  8 
(binary  1 000  on  the  D,C,B,A  inputs).  At  this 


A  Memory  Address  Space  Interface 

One  good  way  to  interface  the  multiplier  is 
through  the  wiring  of  two  addresses  with  appro- 
priate output  latches  and  decoding  logic.  Each 
address  has  a  possible  input  and  output  signifi- 
cance, corresponding  to  whether  the  processor  is 
reading  or  writing  data  to  the  "memory"  location 
which  is  the  multiplier: 

Address  Write  Action  Read  Action 

n  Load  X  operand  latch        Read  P-i,- to  Pp 

rt+1         Load  Y  operand  latch        Read  P-,  to  Pq 
and  start  multiply. 

This  method  of  interfacing  avoids  using  IO  instruc- 
tions, and  can  take  advantage  of  the  double  byte 
load  and  store  instructions  of  the  8080  or  6800. 
(In  certain  cases,  such  as  array  indexed  address 
calculation,  the  8080's  double  byte  addition  opera- 
tion can  prove  useful.) 


time,  the  X  input  byte  is  loaded  into  shift 
register  IC2,  and  the  high  order  product  bits 
in  shift  register  IC3  and  flip  flop  IC6b  are  all 
cleared.  All  this  action  happens  on  the 
ACLK  transition,  labelled  1  in  the  timing 
diagram  of  figure  2. 

The  shift  and  add  multiplication  algo- 
rithm occurs  during  the  next  8  clock  transi- 
tions, labelled  2  thru  9  in  the  timing 
diagram.  At  the  low  to  high  transition  of 
these  clocks  the  binary  counter  ICI  is 
incremented,  and  a  shift  right  occurs  in  the 
shift  register  IC2  which  holds  P0  to  P6  of 
the  final  product  and  starts  out  with  the 
value  of  X.  If  the  shift  carry  output  (SC)  of 
IC2  is  low,  the  transition  will  simply  shift 
the  high  order  portions  of  the  product  (IC6b 
and  IC3)  right  by  one  bit,  since  binary  0  has 
no  effect  on  the  sum.  But  if  an  X  bit  was  1, 
SC  will  be  high,  which  sets  up  control  lines 
so  that  Y  is  added  to  the  previous  value  of 
the  product  P  and  loaded  into  P  with  a  right 
shift  1  bit  position.  (This  right  shift  is  in  the 
wiring  of  the  adder  as  shown  in  figure  1, 
where,  for  example,  the  old  bit  P1  5  plus  the 
high  order  bit  Y7  of  Y  are  added  together  to 
form  bit  PI 4  of  the  new  P  value,  and  the 
new  PI  5  is  taken  from  the  carry  out  of  the 
addition  process.)  The  operation  of  the 
algorithm  is  shown  in  the  state  table  of 
figure  2  for  the  example  25  x  150  =  3750. 

The  multiplication  operation  is  ter- 
minated when  the  binary  counter  reaches  a 
count  of  15,  thus  generating  a  ripple  carry 
output  which  resets  the  flip  flop  IC6a  to  a 
READY  state  at  the  final  high  to  low 
transition  of  the  ACLOCK  clock  during  a 
multiplication.  If  the  external  circuitry  tests 
READY,  this  indicates  end  of  the  multiplica- 
tion and  a  valid  product  on  the  P  output 
lines.  Note  that  the  binary  counter  performs 
one  more  increment  to  a  zero  count,  then 
inhibits  itself  until  the  next  START  signal." 


39 


Announcing  a  Computer 

that  thinks  in  BASIC 
for  only  5298. 


Ohio  Scientif ic's  new  Model  500  computer  has  full  mini-computer 
BASIC  in  ROM  and  a  minimum  of  4K  RAM  for  user  programs. 
BASIC  is  always  there  when  the  computer  is  turned  on. 
Make  your  terminal  intelligent! 

If  your  company  or  school  has  remote  computer  terminals,  con- 
sider the  Model  500-1.  It  fits  in  the  communications  line  between 
the  terminal  and  modem  or  system.  When  the  500-1  is  off,  the 
terminal  talks  to  the  modem.  When  it  is  on,  the  terminal  talks  to 
the  Model  500.  Use  the  Model  500  for  short  and  medium  sized 
programs  in  BASIC.  Use  its  immediate  mode  as  an  ultra-powerful 
scientific  calculator! 
Computers  for  Students 

Couple  a  Model  500  to  a  low  cost  purchased  or  leased  terminal 
such  as  the  popular  ASR-33  teletype  for  student  instruction.  The 
Model  500's  BASIC  is  a  perfect  instructional  language  for  stu- 
dents. Since  the  computer's  machine  code  is  also  accessible, 
the  Model  500  can  challenge  the  advanced  student  with  other 
optional  software  such  as  our  interactive  Assembler/Editor. 
Personal  Computing 

The  Model  500  has  eliminated  all  of  the  grief  of  the  first  genera- 
tion personal  computers.  This  computer  comes  fully  assembled, 
tested,  and  guaranteed. 

Most  importantly,  it  is  easy  to  use  since  the  BASIC  is  always 
there. 

Flexibility  and  Expandability 

The  Model  500  uses  Ohio  Scientific's  standard  48  line  bus  so 
that  it  is  fully  compatible  with  our  Model  400  kits  and  Challenger"11 
product  lines.  Any  of  thirteen  accessory  boards  including  RAM, 
PROM,  parallel,  serial,  AID,  D/A,  cassette,  and  video  graphics  can 
be  added  as  well  as  peripherals  including  floppy  disks,  line 
printers,  color  graphics,  and  more. 

The  Model  500  is  offered  here  in  three  forms  to  meet  every 
application  and  pocket  book. 
Specifications 

Model  500  Board  $298.00 

8"  x  10"  fully  assembled  board  including  6502  microprocessor 
running  at  1MHz,  512  bytes  of  PROM,  8192  bytes  of  ROM  con- 
taining 8K  BASIC  and  4096  bytes  of  RAM  for  user  programs.  The 
board  contains  an  ACIA  based  serial  interface  which  is  jumper 
selectable  for  RS-232C  or  20ma  loop  at  110,  300,  1200,  2400,  or 
4800  baud. 

The  8K  BASIC  features:  full  floating  point  math  including 
transcendental  functions,  N  dimension  arrays,  multiple  letter 


variables,  full  string  functions,  logical  operators,  PEEK,  POKE, 
USR,  and  lots  more! 

The  Model  500  board  requires  +5  volts  at  2  amps,  -9  volts  at 
500ma,  an  external  reset  switch,  and  an  ASCII  serial  terminal  for 
operation. 

Model  500-1  $429.00 

Fully  enclosed  500  board  with  power  supply,  reset  switch,  and 
two  25  pin  EIA  standard  terminal  connectors  for  loop  through 
operation.  The  500-1  is  12"  x  15"  x  4". 

Model  500-8  $629.00 

This  unit  is  a  500  board  in  an  eight  slot  Challenger"11  case  allow- 
ing seven  slots  for  expansion.  The  unit  has  a  heavy-duty  UL 
recognized  power  supply  and  is  15"  x  17"  x  10". 

ORDER  FORM 


Order  directly  from: 

Ohio  Scientific;  Hiram,  Ohio  44234 

This  introductory  offer  expires  August  31,  1977.  Please  allow  up  to  60  days 
for  delivery. 

PRINT  OR  TYPE  CLEARLY. 

Name 


Shipping  Address 
City 


_State_ 


-Zip- 


Payment  by:  BAC(VISA)._ 
Credit  Card  Account  #  „ 


_  Money  Order 

Expires . 


Interbank  #  (Master  Charge) . 


.  Model  500  Boards  @  $298.00 

.  Model  500-1  Computer  @  $429.00  . 

.  Model  500-8  Computer  @  $629.00 . 

.  Additional  4K  RAM  Memories 
for  500-8  @  $149.00 

4%  Sales  Tax  (Applies  to 
Ohio  Residents  only) 


TOTALCHARGEDOR  ENCLOSED. 


All  orders  shipped  insured  UPS  unless  otherwise  requested. 


Circle  12  on  inquiry  card. 


Hiram,  Ohio  44234 


Asfc  BYTE 


S-100  BUS? 

Would  you  please  show  the  pin 
description  of  the  S-100  bus,  or  at  least 
tell  me  where  I  can  find  it? 

David  W  Anderson 

15500S  1300  W 

Bluffdale  UT  84065 

The  S-100  bus,  so  called,  is  the  name 
used  by  "everybody  else"  who  manu- 
factures a  MITS  Altair  compatible 
peripheral,  processor  or  board.  MITS  Inc 
defined  the  bus  by  designing  the  Altair 
8800,  and  during  1976  various  manu- 
facturers who  make  Altair  compatible 
peripherals  and  processors  with  Altair- 
like  backplanes  began  calling  it  the 
"S-100"  bus  in  advertisements.  So  for 
detailed  information,  purchase  the  docu- 
mentation of  an  Altair  8800,  or  one  of 
the  other  central  processors  which  copy 
this  arrangement.  Sooner  or  later,  we 
expect  to  print  an  article  detailing  this 
information.  ■ 

MULTIPLICATION 

...  In  the  April  1977  BYTE  you 
published  some  information  on  the 
8008.  From  looking  at  the  instruction 
set  published  I  don't  see  a  multiplication 
instruction.  Do  any  microprocessors  have 
a  hardware  multiply  instruction,  or  is  it 
always  in  software? 

J  oseph  H  Stockton  Jr 

Rt  6,  Caroline  Dr 

Stockbridge  GA  30281 

The  8008  was  the  first  microprocessor 
to  be  both  widely  marketed  and  of  suf- 
ficient capability  to  make  a  decent 
general  purpose  computer.  Since  it  came 
out,  in  the  early  years  of  this  decade, 
designs  have  evolved  considerably,  but 
few  designs  to  date  (1977,  first  quarter) 
include  hardware  multiply  and  divide 
functions.  The  Digital  Equipment  Cor- 
poration's LSI- 11  has  a  PDP-11  instruc- 
tion set  which  does  not  include  multiply 
or  divide  operations  in  its  basic  set,  but 
which  has  an  optional  extended  arith- 
metic option  which  provides  16  bit  fixed 
point  arithmetic  operations  and  32  bit 
floating  point  arithmetic  operations.  The 
Texas  Instruments  TMS-9900  processor 
has  multiply  and  divide  operations  for 
16  bit  integer  arithmetic  built  into  its 
design.  But  the  popularly  used  8080, 
Z-80,  6800  and  6502  processors  do  not 
incorporate  this  feature  and  the  user 
must  do  multiplication  and  division  in 
software.  ■ 


Put  exceptional 
versatility  and  control 
into  vour  s-100  bus 
system  with  the 
t>lueboards\..and 
save 
money 
in  the 


8  8  8  8  8  8  8  8 


bargain! 

II 

XB1     Extender  Board 
Board  Only  $9.00 
With  Connector  $13.50 


:  :  :  :  : 


MT1     1 5  slot  Mother  Board 
Board  Only  $45.00 
With  Connectors  $105.00 


MB4    4K  Static  RAM  (low  power) 
Kit  $129.95 
Assembled  $179.95 


VB1A    Video  Board 
Kit  $189.95 
Assembled  $264.95 


MB6A    SK  Static  RAM  (low  power) 
Kit  $265.00 
Assembled  $325.00 


SB1     Synthesizer  Kit 
Kit  $250.00 
Assembled  $325.00 


MB3    2K/4K  EPROM  (1702A) 
Kit  less  PROM's  $65.00 
2K—$105.00/4K— $145.00 
Assembled  board  available 


16K 


I/02    Interface  Board 
Kit  $55.00 
Assembled  $79.95 


■    MB7    16K  Static  RAM  (low  power) 

"     Kit  S525.00 

|    Assembled  $599.95 


-I  We're  the  blue  boards! 


Compare  the  Cybercom  blue  boards  with  any  others  on  the  market 
today.  You'll  find  exceptional  quality  plus  prompt  delivery  and 
significant  cost  savings.  All  Cybercom  kits  are  guaranteed  90  days 
for  parts  and  labor. 

Contact  your  local  computer  hobbyist  store  or  write  for  details. 


Solid  State  Music 

2102A  Walsh  Avenue,  Santa  Clara,  CA  95050 
Telephone  (408)  246-2707 


Circle  13  on  inquiry  card. 


Condensed  Reference  Chart 


aNNb 

Mne.  Mode 

Cond.  Flags 

OPERATION 


Figure  1 ;  This  is  the  basic 
four  line  format  that  is 
used  to  describe  each  par- 
ticular opcode  instruction. 
See  text  for  a  detailed 
description  of  the  notation 
used. 


Robert  J  Borrmann 
Electrical  Engineering  Dept 
Manhattan  College 
RiverdaleNY  10471 


Here  is  a  quick  reference  chart  that  de- 
scribes the  opcodes  for  the  Motorola  6800 
microprocessor.  This  chart  gives  all  of  the 
hexadecimal  codes,  including  the  ones  that 
are  unimplemented.  The  codes  are  given  in 
a  four  line  format  as  shown  in  figure  1 . 

The  first  line  has  three  values:  a,  b  and 
NN.  NN  is  the  hexadecimal  op  code;  a  is  the 
length,  one,  two  or  three  bytes,  of  the 
instruction;  b  is  the  length  of  execution  in 
machine  cycles  for  each  instruction. 

The  third  line  contains  the  condition 
flags  that  are  affected  by  the  execution  of 
the  instruction.  The  notation  used  for  the 
condition  flags  is  summarized  in  table  2.  If  a 
flag  is  set  to  a  specific  value  by  the  instruc- 
tion, the  flag  and  value  are  shown  on  line  4. 
If  the  command  is  a  branch  instruction  then 
this  line  contains  the  conditions  under  which 


A 

=    Accumulator  A. 

B 

=    Accumulator  B. 

# 

=    Immediate. 

d 

=    Direct. 

X 

=    Indexed. 

e 

=    Extended. 

r 

=   Relative. 

=    Inherent  (no  symbol) 

Table  I :  Summary  of  the 
addressing  modes  that  are 
used  in  the  chart.  These 
modes  are  found  in  blue 
on  the  chart. 


the  branch  will  occur  in  parentheses.  The 
letter  "u"  represents  an  operand  interpreted 
as  an  unsigned  8  bit  binary  number,  "s" 
represents  an  operand  interpreted  as  a  signed 
two's  complement  number.  The  "u"  and 
"s"  conditions  are  correct  only  if  the  last 
flag  affecting  instruction  executed  before 
the    branch    is   SBA,  CBA,   SUB   or   CMP. 

The  fourth  line  contains  a  summary  of 
the  operations  of  the  instruction  in  the 
AHPL  language.  AHPL  stands  for  A  Hard- 
ware Programming  Language  and  is  discussed 
by  Hill  and  Peterson  in  Digital  Systems: 
Hardware  Organization  and  Design  which  is 
published  by  John  Wiley  and  Sons  Inc.  The 
notation  is  taken  from  page  1 1 2  of  that 
book.  The  upward  and  downward  pointing 
arrows  stand  for  various  types  of  shifts.  The 
upward  pointing  arrow  is  a  circular  shift  left 
and  the  downward  pointing  arrow  is  a 
circular  shift  right.  An  arrow  with  a  circle  at 
its  beginning  denotes  a  shift  with  a  zero 
moving  into  the  vacated  end.  The  arrow  with 
the  ditto  mark  (")  is  my  own  invention  to 
denote  a  shift  with  the  vacated  end  bit 
maintained.  The  ®  symbol  is  used  to  denote 
the  exclusive  OR  function.  The  left  pointing 
arrow  is  the  APL  standard  assignment 
symbol.  If  a  condition  flag  is  set  to  a 
particular  value  by  the  instruction,  the  value 
is  indicated.  Any  condition  flags  that  do  not 
have  a  particular  notation  follow  the  ordi- 
nary rules.  Primes  on  the  flag  condition, 
such  as  v  in  the  LSR,  ROR  and  ASR 
instruction,  denote  a  special  rule  for  setting 
or  clearing  that  flag. 

A  nonstandard  notation  concerns  the 
pushing  or  pulling  of  the  stack.  Pulling  from 
the  stack  is  accompanied  by  an  increase  in 
the  value  of  the  stack  pointer.  The  value  is 
increased  by  1  in  the  PULA  and  PULB 
instructions;  by  2  in  the  RTS  instruction; 
and  by  7  in  the  RTI  instruction.  Similarly, 
pushing  into  the  stack  is  accompanied  by  a 
decrease  in  the  value  of  the  stack  pointer  by 
the  appropriate  amount." 


CCR    =   xxhinzvc. 

h  =  Half  carry. 

i     =  Interrupt  mask. 

n  =  Negative. 

z   =  Zero. 

v   =  Overflow. 

c   =  Carry. 

x  =  Don't  Care,  always  1 


Table  2:  Summary  of  the 
condition  flag  codes  that 
are  used  in  the  chart. 


Editor's  Note  .  .  . 

The  Holes  in  Opcode  Space 

Looking  at  this  chart  of 
the  6800  (or  a  similar 
chart  for  any  processor) 
one  sees  numerous  "holes" 
in  operation  code  space. 
These  holes  are  the  yellow 
boxes.  An  interesting  chal- 
lenge for  the  owner  of  a 
microprocessor  (or  any 
computer)  is  to  try  and 
figure  out  what  happens 
when  the  forbidden  op- 
codes are  executed.  Will 
these  exotica  turn  out  to 
have  any  uses?  Or  will 
they  simply  be  another  set 
of  NOPs?  For  example, 
look  at  the  strange  group- 
ing of  the  operation  codes 
4X,  5X,  6X,  7X  where  X  is 
any  hexadecimal  digit.  40, 

50,  60,  70  are  all  negates, 
43,  53,  63,  73  are  all 
complements,  and  various 
arithmetic  operations  oc- 
cur for  other  values.  But 
the    operation    codes    41, 

51,  61  and  71  are  nomi- 
nally undefined  as  are  4B, 
5B,  6B,  7B  and  several 
others.  Could  it  be  that 
those  are  operation  codes 
that  weren't  documented 
in  the  literature  because 
the  masks  of  the  LSI  chip 
had  errors'1  Could  it  be 
that  they  are  supposedly 
unimplemented  but  are 
really  just  not  documented 
so  that  a  "next  genera- 
tion" processor  can  be 
achieved  by  simply  releas- 
ing the  paperwork  and  sell- 
ing "new"  chips?  It's  an 
area  of  personal  research 
which  could  prove  quite 
useful:  Whenever  you  find 
a  new  processor,  examine 
it  for  missing  opcodes  and 
see  what  wasn  't  docu- 
mented —  then  try  to  fig- 
ure it  out  by  writing  pro- 
grams which  execute  "un- 
implemented" instructions 
under  carefully  controlled 
conditions. 


42 


for  the  6800 


00 

'10' 

'  20" 

'30" 

'40'         '50'       '60' 

3  70" 

'  80' 

'903 

'  AO"        '  B0'     '  CO' 

'  DO3        '  EO" 

3F0' 

SBA 

BRAr 

TSX 

NEG  A         B            X 

e 

SUB  A= 

Ad 

AX            An         B= 

Bd             BX 

Be 

nzvc 

nzvc 

nzvc 

A-  ■  A-B 

PC-PC+r+2 

IX-SP^l 

OP-  ~OP 

ACC-ACC-OP 

'01' 

'11' 

21 

'31" 

41 

51 

61 

71 

'81' 

2913 

'A15        3B1"      L'C1' 

'D13         'El" 

'F1" 

NOP 

CBA 

nzvc 

nz*e  f(A-6) 

INS 
SP-  SPi  1 

CMP  A# 

Ad 

AX           Ae         B- 
nzvc 
nzvc-flACC-OP) 

Bd             BX 

Be 

02 

12 

'  22'' 

'32" 

42 

52 

62 

72 

'  82' 

'92' 

'A2S        3B2"     'C2' 

'  D21         '  E2" 

3F2" 

BHI  i 

PULA 

SBC   A-: 

Ail 

AX          Ae         B= 

Bd              BX 

Be 

(U1>U2) 

A-  TOS 

nzvc 
ACC-  ACC-OP-c 

03 

13 

'  23' 

BLSi 
(UKU2I 

'33' 
PULB 

B-  TOS 

'43'          '53'        '63' 
COM  A          B              X 
nzvc 
OP-   -OP  v  Op    I 

3  73° 

83 

93 

A3 

B3 

C3 

D3 

E3 

F3 

04 

14 

'  24' 

'34' 

'44'         '54'        '64' 

374r. 

'84' 

'94' 

'  A4b        '  B4'     '  C4' 

•  D43         '  E4" 

:'F4" 

BCCi 

DES 

LSR  A          B              X 

e 

AND  A= 

Ad 

AX          Ae         B-" 

Bd             BX 

Be 

(c=0) 

nzvc 

nzv 

SP-  SP-1 

(OP,c)-$(OP,c)  n-  0 

ACC-ACC  NOP.  v-0 

05 

15 

'25" 

'35' 

45 

55 

65 

75 

'85' 

2953 

'A5!'        'B5'     'C5' 

'  D53        '  E5" 

3F5' 

BCS. 

TXS 

BIT  A  = 

Ad 

AX            Ai-          B= 

Bd             BX 

Be 

(c=1) 

SP-   IX— 1 

nzv 
nz-t(ACCAOP),  v-0 

'06' 

'16' 

'26' 

'36" 

'46'         '56'       '66' 

5  76" 

'86' 

'963 

'A6!'        :'B6'     'C6' 

'  D63         '  E6" 

•F6' 

TAP 

TAB 

BNEr 

PSHA 

ROR  A         B            X 

e 

LDA  A  = 

Ad 

AX          Ac         B= 

Bd              BX 

Be 

ihnzvc 

nzv 

(2-0) 

nzvc 

nzv 

CCR-  A 

B-  A.  v-0 

TOS-  A 

(OP.cl-MOP.cl 

ACC-  OP  v-0 

'07' 

'17' 

'27" 

'37' 

'47'         '57'       '67' 

37?B 

87 

'97' 

JA7t        :.B7s 

C7 

'D7'          :'E7" 

iF7s 

TPA 

TBA 
nzv 

BEQr 
U-1] 

PSHB 

ASR  A         B            X 
nzvc 

e 

STA  Ad 

AX            Ae 
nzv 

STABd        BX 
nzv 

Be 

A-  CCR 

A-  B,  v-0 

TOS-  B 

(OP.c|-HOP,cl 

OP 

ACC,  v-  0 

OP-  ACC.  v-0 

'08' 

18 

'28" 

38 

'48-         '58'        '68' 

3  78" 

'  88' 

'  98 ' 

A8''        'B8'      'C8' 

■  D83           E8" 

'F8' 

INX 

BVC. 

ASLA          B              X 

a 

EOR  A ---- 

Ac 

AX          Ae         B= 

Bd             BX 

Be 

z 

(v=0) 

nzvc 

nzv 

IX- IX+1 

(c.OPI-J  (c-opl 

ACC-ACC-i-OP,  v-0 

'09* 

'19' 

'  29' 

'39'J 

'49'          '59'       '69' 

3  79' 

'89' 

'  99' 

'  A9°      '  B9'     '  C9' 

•'  D93           '  E9" 

'  F9' 

DEX 

DAA 

BVSr 

RTS 

ROL  A        B            X 

e 

ADC  A= 

Ad 

AX         Ae          B= 

Bd               BX 

Be 

Z 

nzvc 

tv-1) 

nzvc 

hnzvc 

IX-  IX     1 

A. CCR- -|  ) 

PC-  DTOS 

(c.OP)-t(c.OP) 

ACC-ACC+OP+c 

'0A' 

1A 

'  2A' 

3A 

'4A'         '5A'      '6A' 

J7Ae 

'8A' 

'  9AJ 

'  AA"     '  BA'     '  CA' 

'DA'         'EA" 

3  FA' 

CLV 

BPL  , 

DEC  A         B             X 

e 

ORA  A== 

Ad 

AX           Ae        B= 

Bd               BX 

Be 

V 

(n=0) 

nzv 

nzv 

v-0 

OP-OP- 1 

ACC-ACCVOP,  v-0 

'OB' 

'1B' 

'2B' 

'3B'" 

4B 

5B 

6B 

7B 

'8B' 

'9B' 

'ABS     3BB'     'CB' 

DB"          :'EB" 

3FB" 

SEV 

ABA 

BMI  r 

RTI 

ADD  A= 

Ad 

AX         Ae        B  = 

Bd               BX 

Be 

V 

»>    1 

hnzvc 
A<-A+B 

(n-1) 

ihnzvc 
Rtl-   7S'K 

hnzvc 
ACC-ACC+OP 

'OC 

1C 

1 2C' 

3C 

'4C        '5C'      '6C 

3  7C" 

J8C3 

'  9C" 

'AC     3BC5 

CC 

DC 

EC 

FC 

CLC 

BGEr 

INCA         B             X 

e 

CPXS 

d 

X              B 

c 

(S1>S2) 

nzv 

nzv 

c-0 

OP-OP <  1 

nzv-fllX- 

-DOP| 

'OD' 

1D 

'2D' 

3D 

'4D'         '5D'      '6D' 

37D" 

'8D« 

9D 

'AD"      '  BD'' 

CD 

DD 

ED 

FD 

SEC 

BLTr 

TST  A           B             X 

e 

BSRr 

JSRX        e 

c 

(S1<S2) 

nzvc 

c*-1 

nz-flOP)  v-0  c-o 

'OE' 

1E 

■2E* 

'3E" 

4E 

5E 

'6E" 

37E3 

J8EJ 

'9E' 

■AE"     'BE'' 

JCE3 

■  DE'          'EE" 

IFE! 

CLI 
i 

BGTr 
(S1>S2) 

WAI 

JMP  X 

e 

LDS  = 

d 
nzv 

X             e 

LDX  = 

d                X 

nzv 

e 

i-0 

7Stk-  Rg 

np 

SP-  DOP 

v-0 

IX-DOP,  v-0 

'OF' 

1F 

'2F' 

'3F" 

'4F'          '5F'        '6F' 

i7Fe 

8F 

'9F'J 

'AF'      >BF" 

CF 

'DF"          'EF' 

JFF" 

SEI 

BLEr 
(SKS2) 

SWI 

i-1 

CLRA          B             X 
nzvc 

e 

STSd 

X            e 

nzv 

STXd            X 
znv 

e 

M 

7Stk-Rg 

OP— 0,n— O.z— 1,v-0,c 

-0 

DC 

P-SP,  v-0 

DOP-^IX,v-i 

J 

43 


A  Train  Control  Display 
Using  the  LSI-11  Microcomputer 


Jack  Hart 

Digital  Components  Group  Engineering 

Ed  Badger 

System  Diagnostic  Engineering 

Digital  Equipment  Corporation 

Marlborough  MA  01752 


Figure  1:  Model  railroad 
track  layout  used  in  au- 
thors' system.  During  a 
typical  demonstration, 
both  trains  leave  their 
sidings  under  control  of  a 
Digital  Equipment  Corpo- 
ration LSI-11  microcom- 
puter and  are  routed  along 
the  tracks  according  to  a 
control  program  in  the 
computer.  Feedback  sen- 
sors are  used  to  verify 
train  locations  at  strategic 
times. 


In  order  to  demonstrate  the  application 
of  a  microcomputer  to  real  world  situations, 
a  model  train  system  was  developed  which  is 
controlled  by  a  Digital  Equipment  Corpora- 
tion LSI-11  microcomputer.  Two  model 
trains  were  used  for  the  demonstration  — 
one  adhered  to  a  fixed  schedule  while  the 
other  was  directed  along  a  path  to  make  it 
avoid  the  first  train. 

HO  model  railroad  components  were 
used.  (HO  is  currently  the  most  popular  size 
for  model  trains  and  accessories  among 
enthusiasts  in  the  United  States;  the  scale 
is  1/64th  of  actual  size,  but  this  can  vary.) 
The  layout  includes  some  75  feet  of  track 
and  18  switches  plus  detectors  to  determine 
train   locations  and   a  programmable  power 


S4 


supply  to  control  train  speed  and  direction. 
Control  interfaces  are  used  between  the 
computer  and  the  track  for  power.  In  addi- 
tion, switches  are  used  to  control  train 
position  and  both  station  indicators  and 
billboards  check  train  positions  and  provide 
atmosphere.  A  60  Hz  clock  is  used  for  a  time 
base,  and  peripheral  devices  are  used  for  data 
entry,  status  reporting  and  transferring  com- 
mands to  the  train  system. 

As  in  many  other  such  systems,  the  hard- 
ware and  software  elements  of  this  system 
can  be  analyzed  separately,  but  it  is  impor- 
tant to  keep  the  interrelations  between  the 
two  in  mind.  Thus,  when  a  detector  informs 
the  computer  that  a  train  is  in  a  certain  loca- 
tion, the  control  program  must  update  the 


STATION 
#3 


STATION*-  2 


STATION*  1 


S18 


SI  SU 

TRACK  LAYOUT  INDICATING  18  SWITCHES,  4  STATIONS  AND    2    SIDINGS 


STATION 
-#4 


44 


system's  files  so  that  the  new  location  can  be 
related  to  the  location  of  the  other  train. 

Take  the  A  Train 

The  operation  of  this  electric  train  system 
is  straightforward  (see  figures  1  and  2). 
Upon  startup,  the  trains  are  moved  forward 
until  they  trip  the  location  sensors  in  their 
respective  sidings.  These  location  sensors  are 
actually  reed  switches  which  will  close  in  the 
presence  of  a  magnetic  field.  Each  train  is 


MICROPROCESSOR  a  PERIPHERALS 


VT52 
TERMINAL 


<^> 


^A 


<T> 


SERIAL       A A. 

LINE      f  y 

UNIT      V y 


SERIAL      A- 
LINE        ' 
UNIT         V- 


7T 


0 


provided  with  a  magnet  for  this  purpose  (the 
next  section  describes  these  switches  in 
greater  detail).  After  both  siding  sensors 
have  been  tripped,  the  trains  (called  A  and  B 
for  convenience)  are  individually  brought 
clear  of  the  siding  area. 

The  lead  train  A  is  switched  to  a  station 
and  train  B  is  diverted  to  the  outer  track. 
The  software  used  to  control  the  trains  and 
keep  them  separated  is  then  employed 
throughout  the  remainder  of  the  LSI-11 
demonstration. 


INTERFACE 


c 


RT02 
TERMINAL 


<^> 


LSI  -  M 

MICRO- 
COMPUTER 


OUTPUTS* 


INPUTS    < 


RELAY 
DRIVER 


TRACK 
POWER 


BILLBOARDS 

AND   STATION 

SIGNS 


SIGNAL 
CONDITIONERS 


TRACK  AREA 


-<C.       \—  REED    SWITCH 
I 


INPUTS  < 


OUTPUTS < 


TTL 
TRANSLATORS 


TRACK 

FEEDBACK 

SENSOR 


FLIP  FLOP 
REGISTER 


FLIP   FLOP 
REGISTER 


SINGLE  SHOT 
RELAY 
DRIVER 


FLIP  FLOP 
REGISTER 


SINGLE   SHOT 
RELAY 
DRIVER 


TRACK 

SWITCH 

SOLENOID 


Figure  2:  Block  diagram  of  the  LSI-1 1  control  system.  The  data  bus  is  connected  to  two  terminals  used  to  input  and  display 
information  at  the  operator's  control  station.  It  is  also  connected  to  a  special  interface  which  is  based  on  two  hardware  latches 
called  parallel  line  units,  or  PLUs.  These  PLUs  store  command  bytes  coming  from  the  microcomputer  which  in  turn  drive  flip 
flops  and  relay  drivers  used  to  power  the  track  and  operate  track  switches.  Commands  from  the  computer  are  in  the  form  of 
16  bit  words.  Each  section  of  the  track  has  been  assigned  a  specific  bit,  and  only  those  bits  of  the  word  necessary  to  change  the 
track  sections  desired  will  change.  Information  from  reed  switches  is  also  latched  by  the  PLUs  and  sent  back  to  the  computer 
to  be  used  in  closing  the  feedback  control  loop. 


45 


HI!  I'M  AN  LSI-11  MICROCOMPUTER 

I'M  RUNNING  THIS  RAILROAD  TO  DEMONSTRATE  MY  REAL  TIME 
MULTITASK  FOREGROUND,  BACKGROUND  CAPABILITY.  I  MONITOR  27 
INPUTS  AND  CONTROL  32  OUTPUTS  AND  STILL  HAVE  MOST  OF  MY 
POWER  UNUSED. 


STATION 

BOSTON 
NEW  YORK 
LOS  ANGELES 
SAN  FRANCISCO 


STOP  CODE 

1 
2 
3 
4 


ARRIVE  TIME 

DEPARTED  *(1.) 

+32  SECONDS  *(1.,  2.) 

SCHEDULED  *(1.) 


;*"TIME***:  *    (2.) 

*  * 

•  12;  38;  17  ; 


Figure  3:  A  typeset  example  of  the  type  of  display  generated  by  the  authors' 
terminal.  Such  pertinent  train  information  as  arrival  times  and  estimated 
delays  is  available  to  the  operator.  "Arrival  Time"  messages  vary  between 
"ARRIVED,"  "DEPARTED,"  "+XX  SECONDS,"  "DELAYED,"  "NEXT 
STOP, "  and  "SCHEDULED. " 


Operator  instructions  such  as  specifying 
where  the  trains  are  to  stop  and  requests 
from  the  computer  for  instructions  are 
transmitted  by  an  RT02  remote  data  ter- 
minal. The  terminal  has  a  30  character  key- 
board input  and  can  display  as  many  as  32 
alphanumeric  characters.  These  character- 
istics provide  all  the  capabilities  needed  for 
full  interaction  between  the  operator  and 
the  system.  A  full  video  terminal,  the  VT52, 
is  used  to  display  train  information  as  well  as 
advertisements  and  time  of  day.  The  ter- 
minal is  serially  connected  to  the  central 
processor  and  operates  at  9,600  bps.  Multi- 
ple messages  can  be  displayed  on  the  screen 
simultaneously  (see  figure  3). 

Software  for  the  train  demonstration  can 
be  called  "multitask."  Tasks  are  assigned  to 
be  either  a  foreground  or  a  background 
priority  status.  There  are  12  possible  tasks 
required  to  run  the  train  system,  eight 
of  which  are  in  background.  Foreground  jobs 
take  priority  over  background  jobs  by  means 
of  interrupts.  Since  most  of  the  jobs  are 
executed  on  an  "as  needed"  basis,  the 
primary  job  of  the  background  is  to  act 
as  a  "wheel  spinner"  which  cycles  in  a  wait 
loop  until  called  upon. 


Photo  J:  Authors  Hart 
(foreground)  and  Badger 
performing  a  different 
kind  of  "engineering"  with 
their  LSI-ii  controlled 
model  railroad.  The 
system  was  on  display  at 
the  IEEE  Electro  76  con- 
ference in  Boston.  The 
display  was  also  seen  by 
many  of  our  readers  at  the 
Personal  Computing  76 
conference  in  A  tlantic  City 
NJ  in  August  1976. 


TRAIN 

MAGNET 

JT 


01 


TO    PLU2 


REED   SWITCH 


Software  execution  in  this  system  is  con- 
trolled by  a  real  time  clock  program  module 
which  creates  a  reference  base  to  coordinate 
all  program  operations.  This  particular  clock 
makes  use  of  a  standard  60  Hz  power  line 
frequency  which  is  passed  through  a  low 
pass  noise  filter  and  then  transformed  into 
a  train  of  square  waves  at  TTL  voltage  level. 
These  square  waves  are  next  fed  to  the  BUS 
event  line  of  the  LS 1-1 1  where  they  create 
processor  interrupts  at  each  positive  going 
transition  of  the  waveform.  Every  16.7  ms, 
then,  control  is  transferred  to  the  clock  job, 
which  regulates  the  "time  of  day"  and 
"train  arrival"  displays  on  the  video  terminal. 

Keeping  Track  of  Your  Trains 

Neither  train  can  be  successfully  con- 
trolled unless  its  location  is  known  with  a 
great  deal  of  certainty  at  any  given  time. 
This  is  done  by  processing  information  from 
the  various  reed  switches  and  extrapolating 
times  of  arrival  at  key  points  (eg:  when 
train  A  is  scheduled  to  arrive  at  a  station). 

As  mentioned  earlier,  each  train  has  a 
magnet  mounted  on  it  to  activate  the  reed 
switch  sensors  (see  figure  4).  Each  sensor  is 
polled  periodically  to  determine  if  a  train  is 
present.  From  this  information  it  is  possible 
to  compare  train  position  against  the  schedule 
and  the  time  base  to  quickly  tell  if  a  train  is 
on  time  or  late;  this  information  can  be  dis- 
played on  the  video  screen.  The  reed 
switches  are  connected  to  the  input  side  of 
parallel  line  unit  number  one  (PLU  1, 
which  serves  as  a  data  storage  buffer  to  and 
from  the  computer)  via  a  TTL  translator 
which  converts  the  switches'  status  to  the 
appropriate  TTL  voltage  levels  needed  by 
the  PLU.  PLU  1  's  output  is  used  to  energize 
the  billboard  signs  and  sections  of  track 
under  control  of  the  LSI-1 1 . 


r 


oj 


Powering  Up 

When  two  trains  are  to  be  controlled 
simultaneously,  as  in  this  case,  the  simplest 
technique  is  to  apply  power  to  isolated 
sections  of  track  at  the  right  times.  The  com- 
puter can  differentiate  between  trains  A  and 
B    by    checking  position   and   schedule  and 


Figure  4:  Reed  switch  cir- 
cuitry used  to  send  feed- 
back information  to  the 
microcomputer.  When  a 
train  passes  by,  the  mag- 
netic field  causes  the 
switch  to  close,  pulling 
the  signal  line  down  to 
ground  potential;  this  sends 
a  signal  back  to  the  inter- 
face (and  finally  to  the 
computer)  that  a  train  is 
passing. 


MORE  POWER  TO 
YOURALTAIR* 

12  AMPS  @  8v.  (nominal) 
2  AMPS  (S)  ±16v. 


At  any  line  voltage  from: 

90  to  140  volts. 

Installs  easily  inside  any  Altair*  8800  or 
8800a. 

Over  voltage  and  over  current  protected. 
Conservatively  designed  and  specified. 


only  $90.00 

postpaid  in  the  U.S.A. 
California  residents  add 


mastei  charge 


$5.40  sales  tax. 


PARASITIC  ENGINEERING 


PO  BOX  6314 


ALBANY  CA  94706 


"Altair  is  a  trademark  of  MITS  Inc. 


47 


Circle  53  on  inquiry  card. 


+  5V 


+  5V 


O 


FROM    PLUI    < 


o 


Figure  5:  Computer  con- 
trolled track  power  cir- 
cuitry. Inverted  logic  levels 
coming  from  PLU  I  drive 
two  types  of  relays.  The 
first  type  (represented  by 
relay  1  in  this  illustration) 
chooses  the  polarity  of  the 
voltage  going  to  the  track, 
while  the  second  type  (re- 
lay 2  here)  applies  power 
to  the  track.  Only  certain 
strategic  areas  of  the  track 
require  polarity  switching. 


RELAY   I 

i 


o 


H> 


RELAY   2 

I 
ll 


FROM   PLUI    < 


T 


+  8V 


O 


<*. 


then  creating  the  proper  track  energization 
sequence  to  control  the  trains.  There  is  one 
problem  in  using  PLU  I 's  output  to  energize 
the  tracks:  its  TTL  output  power  is  too  low 
to  drive  the  HO  trains  being  used.  This 
problem  can  be  solved  by  the  use  of  relays 
(see  figure  5). 

Relaying  Information 

Two  types  of  relays  are  employed.  For 
those  sections  of  track  which  are  simply  to 
be  turned  on  or  off,  a  single  pole  relay  is 
sufficient.  When  power  is  required,  the 
appropriate    output   word    is  transferred   to 


1 


^ o 


TO    RAILS 


PLU  1,  which  causes  the  desired  relay  to  be 
energized.  This  in  turn  applies  power  to  the 
track.  When  power  is  no  longer  required, 
PLU  I  is  updated  with  a  new  word  and  the 
relay  is  de-energized.  Some  tracks,  however, 
have  reversing  capabilities  which  require  not 
only  power  but  also  one  of  two  polarities  for 
track  voltage.  Figure  5  shows  how  two  relays 
are  used  to  do  this:  relay  1  chooses  the 
polarity  of  the  track  based  on  a  command 
from  PLU  1,  while  relay  2  applies  power  to 
the  track,  again  on  a  command  from  PLU  1. 
Each  time  a  command  isgiven,  a  single  16  bit 
word  is  written  into  the  output  data  buffer 


INSULATING 
TIES 


3V 


I 


RIGHT 
LEG 


SOLENOID 


O  TO    PLU2 


Figure  6:  A  typical  fork  (or  "turnout")  In  the  track.  In  this  illustration,  the  turnout  is  positioned  to  divert  the  train  to  the  left 
leg.  These  solenoid  controlled  mechanisms  act  as  their  own  sensors.  One  leg  of  the  switch  is  either  grounded  or  ungrounded 
depending  on  its  position.  This  is  used  to  provide  a  logical  0  or  7  output  to  the  computer  for  confirmation  of  the  switch's  posi- 
tion. The  solenoid  is  illustrated  in  figure  7. 


48 


PLU  1.  Each  section  of  the  track  has  been 
assigned  a  specific  bit  and  only  those  bits  of 
the  word  necessary  to  alter  the  status  of  the 
track  section  in  question  will  change. 

A  Successful  Turnout 

Another  aspect  of  control  is  the  "turn- 
out" switch  (see  figure  6).  Turnout  is  a 
railroading  term  for  a  fork  in  the  track 
which  divides  it  into  two  branches.  This 
term  is  used  to  avoid  confusion  with  the 
electrical  switches.  The  turnout  settings 
will  obviously  have  to  change  as  a  function 
of  the  two  trains'  positions  and  the  pro- 
grammed routes.  The  current  status  of  a 
turnout  must  be  determined  by  the  com- 
puter before  a  train  can  pass  through.  A  de- 
railment will  occur,  for  example,  if  the  train 
proceeds  from  either  leg  of  a  turnout  against 
the  current  setting.  The  turnout  mechanisms 
in  this  system  have  been  modified  to  act  as 
their  own  sensors.  One  of  the  two  moving 
legs  of  the  turnout  is  electrically  isolated  in 


SWITCH 
LEFT 


SWITCH 
RIGHT 


o_ 


O- 


\y 


c^- 


3  - 


^37 


AC 

:ommon 


TO  SLIDE  OF 
SWITCH  TRACK 


SOLENOID   CONTROLLED  SWITCH  TRACK 


one  position  and  grounded  in  the  other.  It  is 
connected  to  a  +5  VDC  level  (TTL)  through 
a  pullup  resistor  so  that  its  output,  which 
goes  to  parallel  line  unit  number  2  (PLU  2), 
is  either  high  or  low  depending  on  the 
switch's  position. 

A  software  routine  controls  the  turnout 
mechanisms  by  indexing  the  track  table  in 
memory  to  determine  which  track  switches 
must  be  thrown  to  get  both  trains  to  their 
next  checkpoints.  It  then  moves  the  turn- 
outs to  the  required  position,  waits  until  the 
mechanical  motion  of  the  switches  is  com- 


Figure  7:  A  turnout 
solenoid.  This  type  of 
solenoid  can  be  activated 
in  either  direction  because 
of  its  center  tapped  coil. 
Application  of  voltage  to 
the  desired  side  of  the  coil 
determines  the  direction 
of  throw. 


DATA  INPUT 
FROM   PLU2 


NEW 
DATA 
HEADY 


}^> 


I  SECOND 

_TL 


+  5VDC 


> 


Ol 


ITO  TURNOUT 
SWITCH 


TO  TURNOUT 
SWITCH 


Figure  8:  Coil  activation  circuitry.  The  coils  used  to  energize  the  track  solenoids  cannot  be  energized  100%  of  the  time  (a  100% 
duty  cycle)  without  burning  up.  This  circuit  uses  flip  flops  and  delay  elements  to  provide  a  one  second  pulse  to  a  relay  where  it 
is  converted  to  17  VAC,  sufficient  to  activate  the  solenoid.  This  illustration,  like  the  rest  in  this  article,  is  intended  to  illustrate 
a  concept  rather  than  to  serve  as  a  basis  for  actual  construction. 


49 


pleted,  and  checks  the  new  switch  position. 
Each  track  switch  is  moved  by  a  solenoid  as 
shown  in  figure  7.  This  type  of  solenoid  can 
be  activated  in  either  direction  because  of  its 
center  tapped  coil:  application  of  voltage  to 
the  desired  side  of  the  coil  determines  the 
direction  of  throw. 

Mortal  Coils 

Activating  each  solenoid  requires  a  fairly 
elaborate  arrangement,  since  PLU  2  has  only 
16  bits  in  its  output  word,  while  32  control 
signals  are  actually  required  for  all  left  and 
right  solenoid  positions.  Further,  the  sole- 
noids cannot  merely  use  a  level  converter  to 
increase  the  output  control  signal  of  PLU  2: 
such  solenoids  cannot  be  constantly  ener- 
gized at  the  required  level  without  burning 
up.  Figure  8  shows  a  circuit  which  converts 
the  incoming  signal  to  a  level  of  17  VAC 
used  to  energize  the  solenoid.  The  initial 
signal  is  sent  to  IC1,  a  hardware  latch  with 
both  inverting  and  noninveerting  outputs. 
This  latch  is  used  to  buffer  the  incoming 
data.  A  75  ns  delay  is  used  between  the 
inverted  output  of  the  latch  and  the  clock  of 
flip  flop  IC2  to  allow  the  data  level  to  settle 
to  its  correct  value  before  being  clocked  in. 


A  logical  1  signal  from  PLU  2  will  cause  IC2 
to  go  high  and  activate  the  coil.  Another 
delay  circuit  from  the  inverted  output  of 
IC2  feeds  back  to  the  clear  line  and  turns  the 
relay  coil  off  after  one  second.  All  of  this 
causes  the  turnout  switch  to  move  to  its 
right  hand  position.  Shifting  the  switch  to 
the  left  involves  the  same  type  of  procedure. 
To  insure  the  correct  initial  conditions,  a 
software  routine  in  the  LSI  - 1 1  places  all 
turnout  switches  in  the  left  hand  position 
following  startup. 

Off  the  Beaten  Track 

An  emergency  (eg:  a  train  derailment) 
will  occasionally  occur  which  requires  an 
immediate  halt  to  all  operations.  A  provision 
on  the  RT02  data  terminal  keyboard  permits 
"panic  stops"  in  such  circumstances.  To 
bring  a  more  normal,  orderly  halt  to  the 
system,  an  appropriate  command  is  entered 
into  the  data  terminal:  this  sends  train  A  to 
station  1  and  train  B  to  station  4.  When  train 
A  reaches  its  station,  power  is  reversed  on 
the  tracks  so  that  it  will  back  into  siding  1. 
Train  B  is  similarly  backed  into  siding  2, 
which  signals  the  end  of  a  very  tractable 
system  demonstration!" 


Let's  talk  about  a  Real  Bargain 


It's  the  Typewriter/Terminal  from  AJ 

We  have  hundreds  of  ready-for-lease,  or 

ready-for-sale  terminals  that  have 

been  refurbished  and  repriced 

to  make  them  a  truly 

outstanding 

bargain. 


Use  it  as  a  typewriter! 

Our  AJ  841  features  the  heavy  duty  Selectric  IBM  mechanism  to  give 

you  fast,  dependable  operation  day  after  day.  Use  it  in  the  office.  Use 

it  at  home.  At  our  price,  it's  an  economical  typewriter. 

Use  it  as  a  terminal! 

The  841  incorporates  our  own  SELECTRONIC 
mechanism  that  turns  it  into  one  of  the  most  useful 
and  reliable  computer  terminals  on  the  market. 
Thousands  are  in  operation  today.  Your  choice 
of  EBCD  or  Correspondence  Codes,  with  APL 
as  an  option.  It  will  interface  with  almost 
any  IBM  computer. 
If  you  can  use  an  efficient,  low  cost 
computer  terminal,  here's  your  chance 
to  get  one  for  about  the  price  of  a  good 
typewriter  alone. 
If  you're  interested,  call  AJ  Marketing 
at  408  -263-8520,  Extension  280, 
or  write  for  more  details. 

w 


ANDERSON 


521  Charcot  Avenue  •  San  Jose,  CA  95131  ■  (408)  263-8520 

EASTERN  REGION/Hackensack,  N.J.  (201)  488-2525  ■  CENTRAL  REGION/Northbrook  (Chicago),  III.  (312)  498-4220 


Circle  14  on  inquiry  card. 


50 


wmm* 


Deal 
yourself  in 


Atlantic  City,  N.J. 
August  27th-28th 


What  its  alt  about! 

Software  Development 

Micro  Computers 

Hardware  Development 

Disc  Memories 

Computer  Comparisons 

Interfacing 

Program  Implementation 

AMSAT 

Computerized  Music 

Video  Terminals 

Kit  Construction 

Printers 

Computer  Games 

Digital  Tapes 


•  Seminars  and  Technical  talks  by  leading  electronic  equipment  manufacturers 

•  Major  Exhibits  from  all  over  the  country 

•  Demonstrations  in  many  areas  including  Home  and  Personal  Computing 

•  Door  Prizes,  Free  Literature  and  Free  Mementos 

•  All  this  plus  Sun  and  Surf  -  Fun  and  Excitement  -  Relaxation  and  Leisure 


SPECIAL    GROUP     RATES    FOR     CLUBS    AND 
PPrSOriell  ORGANIZATIONS  TRAVELING   FROM  THE  WEST 


COAST  AND  MID-AMERICA. 


U""M-'  Seven  Seas  Travel 

Dawn  Corrigan        17220  S.  Norwalk  Blvd. 
(213)  924-8383        Cerritos.  CA.  90701 


^  Computing 


Write    for    FREE    TRIP-KIT  to    PERSONAL  COMPUTING    77, 
Rt    1,    Box    242,    Mays     Landing,    New    Jersey    08330 

ft   Consumer  Trade  Fair 


EXHIBITION    BOOTHS    STILL    AVAILABLE    -    CALL    (609)    653-1188 

gfc^fc^ MMtarifetfM ktfl Ml mm ******** Mi MMI 


The  TV  Oscilloscope 


Or,  Some  Notes  on  Building  a  Display 


Photo  1 ' :  A  "typical"  dis- 
play. This  shows  the  com- 
pleted display  in  opera- 
tion. The  large  block 
letters  are  reverse  video 
spaces.  The  use  of  blank- 
ing prevents  generation  of 
any  signals  at  the  top  or 
bottom  of  the  screen  and 
keeps  the  visible  portion 
of  the  display  within  the 
linear  region  of  the  TV  set. 


Kenneth  Barbier 
POB  1042 
Socorro  IMM  87801 


Although  conceived  and  designed  in- 
dependently, the  display  circuitry  in  my 
CRT  terminal  is  virtually  identical  to  that  of 
CW  Gantt  in  his  article  "Build  a  Television 
Display"  on  page  16  of  June  1976  BYTE. 
The  major  difference  is  that  I  did  not  use  the 
MM5320  sync  generator,  and  my  display  is 
therefore  not  interlaced  and  its  horizontal 
sweep  is  not  exactly  at  the  usual  TV 
horizontal  rate.  My  display,  shown  in 
operation  in  photo  1,  consists  of  24  lines  of 
64  characters,  with  a  frame  consisting  of  270 
raster  lines  repeated  60  times  per  second. 
With  this  formulation  I  have  a  time 
allotment  for  27  character  lines  with  ten 
raster  scan  lines  per  character.  The  extra 
three  character  line  positions  represent 
overhead  for  vertical  sync. 

In  a  TV  set  the  interlacing  is  produced 
not  by  the  hardware  within  the  set,  but  by 
the  nature  of  the  incoming  sync  signal.  By 


using  a  decode  of  what  would  have  been 
character  line  26  (raster  lines  251  thru  260) 
as  the  vertical  sync,  and  a  decode  of 
character  column  72  as  the  horizontal  sync, 
the  generator  produces  a  horizontal  sync 
frequency  of  16,200  Hz.  The  TV  set  is 
happy  with  these  small  deviations  from  its 
usual  sync  diet,  requiring  no  readjustment 
when  used  for  its  original  purpose. 

Another  difference  between  the  two 
approaches  is  in  the  size  of  the  display.  I 
wanted  no  fewer  than  64  characters  per  line 
in  order  to  be  compatible  with  existing 
software  written  for  a  Teletype  terminal. 
And  to  be  consistent  with  more  characters 
per  line,  using  more  lines  per  frame  preserves 
the  character's  aspect  ratio:  the  ratio  of  its 
height  to  width. 

With  64  character  spaces  each  seven  dots 
wide,  plus  sync  and  retrace  time  allowances 
of  about  20%,  I  found  my  dot  rate  would  be 


DOT 

COUNT 

■^7 


<f 


CHARACTER 

COUNT 

-^64 


AO  Al    A2  A3  A4  A5 

DISPLAY    RAM 
ADDRESS,  LOW 
ORDER 


DOT 
DECODE 


H  SYNC 
COUNT 


HORIZ    SYNC 


SCAN 
COUNT 


dT 


DOT     0     I     2    3     4 

TO  CHARACTER 
GENERATOR 


TO    CHARACTER 
GENERATOR 


RETRACE 

COUNT 

tIO 


LINE 
COUNT 


drFT 


^CHARACTER 
RESET 


A6  A7  A8A9  AIO 

DISPLAY     MEMORY 
ADDRESS,    HIGH   ORDER 


^VERT 
SYNC 


RESET 


Figure  I :  Block  diagram  of 
a  television  display.  This 
version  is  very  similar  to 
the  display  described  by 
C  W  Gantt  in  June  1976 
BYTE,  page  18.  The  points 
Indicated  by  circled 
numbers  are  used  as  de- 
scribed in  the  text  to  gen- 
erate the  various  test 
patterns  shown  in  photos 
2,  3,  4  and  6. 


52 


AND  Using  It  as  a  Synchronous  Test  Instrument  to  Debug  Itself  . 


something  over  9  MHz.  How  to  push  all 
that  through  a  commercial  TV  set  front  end? 
No  way!  I  never  even  tried.  So  I  had  to 
invent  my  own  TV  set  interface  which  was 
described  in  my  short  article  in  July  1976 
BYTE,  page  38. 

A  simplified  block  diagram  of  the  timing 
portion  of  my  terminal  is  shown  in  figure  1. 
Since  it  varies  only  slightly  from  that  of 
Gantt's,  I  have  not  included  a  complete 
detailed  circuit  diagram  or  explanation.  At 
the  block  diagram  level  it  can  be  seen  that  an 
oscillator  drives  a  dot  counter  and  decoder 
to  produce  a  scan  of  the  five  dots  making  up 
each  line  of  a  character,  followed  by  two 
dots  worth  of  spacing.  The  seventh  dot  is 
used  to  increment  the  character  counter, 
which  counts  the  64  characters  to  be 
displayed  in  each  line.  The  end  of  the  line  is 
a  count  corresponding  to  what  would  have 
been  character  72;  this  is  used  to  increment 
the  scan  counter.  The  65th  thru  72nd  charac- 
ter positions  are  timing  overhead  allowing 
time  for  horizontal  sync. 

The  scan  counter  counts  ten  scan  lines: 
one  blank  line  above  the  characters,  the 
seven  raster  lines  comprising  the  characters, 
a  blank  line  below  the  characters,  and  a  line 
on  which  an  underline  or  cursor  position 
marker  can  appear.  At  the  end  of  the  tenth 
scan  line,  the  character  line  counter 
advances.  There  are  24  displayable  character 
lines  numbered  0  thru  23.  Line  number  24  is 
for  spacing  at  the  bottom  of  the  frame,  line 
number  27  is  reserved  for  the  vertical  sync 
and  retrace  time,  and  line  number  26  is  a 
blank  line  at  the  top  of  the  screen.  (Lines  are 


numbered  0  to  26  consistent  with  the  27 
binary  states  of  the  line  counter.) 

The  outputs  of  the  character  counter  (0 
thru  64)  and  the  line  counter  (0  thru  23)  are 
used  to  address  the  display's  programmable 
memory  of  2048  bytes  on  two  boards  of 
1024  bytes  (1  K  bytes)  each.  Only  1536 
bytes  of  this  memory  are  used  in  the  display; 
the  remainder  is  available  to  the  processor 
for  normal  programming  purposes.  The 
processor  can  both  write  into  the  program- 
mable memory  area  and  read  data  from  this 
memory.  However,  these  operations  should 
take  place  during  vertical  retrace  time  to 
avoid  visible  glitches.  The  processor  needs  to 
access  the  display  memory  in  order  to  move 
the  cursor  around  without  disturbing  the 
stored  characters,  and  in  order  to  implement 
scrolling  when  writing  more  than  24  lines. 
Being  able  to  read  and  write  the  display 
memory  makes  it  possible  for  these  func- 
tions to  be  implemented  entirely  in 
software. 

Enabling  the  processor  as  well  as  the 
display  to  read  the  memory  also  makes  the 
hardware  more  complex  than  Gantt's.  His 
approach  was  to  implement  a  display  only, 
mine  was  to  build  a  smart  video  terminal. 
Both  are  built  of  the  same  foundation 
blocks:  a  sync  generator,  a  memory  address 
counter,  and  a  character  generator. 

Whatever  approach  you  might  take,  once 
you  have  built  a  composite  sync  generator 
and  interfaced  it  to  a  TV  set  you  have  a 
powerful  tool  for  developing  the  rest  of  the 
system,  the  main  theme  of  this  article.  By 
breaking    the   video   line  shown   on   Gantt's 


About  the  Author 

Ken  Barbier  is  an  elec- 
tronics technician  em- 
ployed by  National  Radio 
Astronomy  Observatory, 
Socorro  NM.  In  support  of 
the  construction  of  the 
largest  radio  telescope  in 
the  world,  he  has  been 
designing  and  building 
microcomputer  controlled 
automatic  test  equipment 
for  the  project's  Digital 
Control  System.  This  gives 
him  the  opportunity  to 
divide  his  time  between 
hardware  design  and  pro- 
gramming. His  other 
hobbies  include  building  a 
microprocessor  controlled 
bridge  game,  and  flying, 
preferably  without  an 
engine. 


LINE  BLANK 


COMP    BLANK 


(a) 


PC  EDGE 
CONNECTOR 


TO  VIDEO  MIXER 

OR 

RF  MODULATOR 


PC  EDGE 
CONNECTOR 


Figure  2:  (a)  A  modification  of  the  Gantt  televison  display  circuit,  of  page  18,  June  1976  BYTE,  to  use  this  test  instrument 
technique.  The  line  from  IC7  pin  12  to  the  video  level  potentiometer  is  broken  so  that  input  to  the  video  mixer,  and  thus  to  the 
TV,  Is  taken  from  some  arbitrary  point  under  test  rather  than  the  usual  source,  (b)  The  author's  video  output  circuitry,  with  a 
similar  clip  lead  jumper  normally  in  place  for  display  purposes,  but  free  to  be  moved  around  for  testing  purposes. 


53 


M  M  M  *  M     r r    r 


Photo  3:  Moving  the  alli- 
gator clip  probe  to  address 
bit  7  at  point  2  in  figure  I 
yields  this  display.  Here 
the  line  counts  of  several 
lines  are  shown  at  the  left 
of  the  picture. 


Photo  2:  Exploring  the  cir- 
cuit with  the  probing  alli- 
gator clip  produces  various 
interesting  signals.  Here 
the  clip  looks  at  address 
bit  I,  point  I  on  figure  I. 
This  signal  changes  state 
every  other  character  posi- 
tion, giving  vertical  bars 
two  character  widths  wide. 
Note  the  distortion  at  the 
top  of  the  image,  not  nor- 
mally seen  due  to  blanking 
of  the  display. 


Photo  4:  Looking  at  a 
single  dot  position.  When 
the  alligator  clip  is  moved 
to  point  3  on  figure  I,  this 
pattern  is  produced.  Each 
character  has  seven  hori- 
zontal dot  positions,  of 
which  two  are  inactive 
spacing  positions,  and  five 
are  used  for  character  gen- 
eration. 


Photo  5:  A  garbage  display 
field,  obtained  by  the 
application  of  power  to 
the  memory.  Each  chip 
has  a  preferred  start-up 
value,  so  this  pattern  tends 
to  be  the  same  whenever 
one  turns  on  the  display. 
In  this  picture,  blanking 
has  been  suppressed,  so 
the  distortion  due  to  non- 
linearities  at  the  top  of  the 
screen  is  quite  visible. 


schematic  (June  1976  BYTE,  page  18) 
between  the  output  of  IC  7  pin  12  and  the 
level  control  and  bringing  it  off  the  printed 
circuit  board  through  the  edge  connector, 
we  can  insert  an  alligator  clip  lead  in  series  as 
seen  in  figure  2a.  The  equivalent  connection 
modifying  my  own  interface,  published  in 
J  uly  1 976  BYTE,  page  38,  is  shown  in  figure 
2b.  Now  by  using  the  clip  lead  as  a  test 
probe,  any  TTL  level  signal  within  the 
system  can  be  displayed  on  the  TV  set 
to  facilitate  system  development  and 
debugging. 

This  TV  oscilloscope  will  display  signals 
as  intensity  modulation  within  the  display 
field  area,  instead  of  as  the  vertical 
deflection  on  a  real  oscilloscope.  Since  the 
hardware  we  are  building  operates  in 
synchronism  with  the  field  produced  by  the 
composite  sync,  and  since  our  signals  are  all 
digital  with  a  TTL  logical  0  showing  as  white 
and  logical  1  as  black,  this  is  not  a  real 
disadvantage. 

For  example,  probing  around  in  my 
system  I  can  display  the  output  of  the  next 
to  least  significant  bit  of  the  address  to  the 
character  storage  memory  as  seen  in  photo 
2,  test  point  1  on  figure  1.  This  output 
should  change  state  for  every  other  character 
position  in  the  line.  Counting  the  number  of 
bars  in  this  picture,  I  saw  that  not  all  of  the 
64  characters  were  going  to  be  visible,  since 
there  are  less  than  32  bars  showing  in  this 
display.  This  told  me  that  some  adjustments 
had  to  be  made  in  the  relationship  between 
the  character  counter,  the  horizontal  sync, 
and  the  time  allowed  for  retrace.  Also,  as 
seen  at  the  top  of  the  raster  in  photo  2,  the 
horizontal  sync  is  imperfect  following  the 
vertical  retrace.  This  came  about  in  my 
system  since  the  widths  of  the  sync  and 
equalization  pulses  were  not  made  the  same 
as  TV  standards.  Since  none  of  the  24  lines 
to  be  displayed  are  affected,  I  concluded 
that  there  was  no  need  to  cure  this 
"problem." 

Photo  3  is  another  of  the  address  lines  to 
the  memory,  in  this  case  the  bit  which  will 
change  state  once  every  other  character  line 
(test  point  2  in  figure  1 ).  The  line  counts  for 
several   positions  are  shown  on  this  picture. 

A  single  dot  time  (one  of  seven  per 
character)  as  displayed  on  the  TV  oscillo- 
scope is  shown  in  photo  4  from  test  point  3, 
figure  1.  Examining  this  photo  we  might 
expect  some  smearing  of  the  characters  to 
occur  when  the  character  generator  is 
connected,  since  the  "dots"  are  wider  than 
they  are  high.  This  is  a  result  of  the  TV  set 
trying  to  display  a  9  MHz  dot  rate. 

Up  to  this  point  we  have  been  able  to  use 
the  TV  oscilloscope  to  test  the  portions  of 


54 


ASSEMBLY  AND  OPERATING  MANUAL   $4.00 


PLEASE  PRINT  OR  TYPE 


SEND  CHECK  •  MONEY  ORDER  •  COD'S  ACCEPTED  •  CREDIT  CARDS 

SEALS  ELECTRONICS,  INC 
P.O.  BOX  11651 
KNOXVILLE,  TN  37919 

MOST  ORDERS  SHIPPED  WITHIN  10  WORKING  DAYS 


[Write  in  each  box  the  quantity  of  each  part  required] 

KIT  ASSEMBLED      KIT  ASSEMBLED 

]  WWC  "1  68EXT-L|~H 

"2  68WWC     [ 
]        CH  BBUC        |  | 


88  EXT 
68EXT-S 


STATE . 


ZIP. 


- E  l  I  I  I 1 1  I  I  i 

^™ r."."V|  |  ilu 


L 


[READ  ONLY  MEMORY] 

ept  up  to  16  ea.  1702-A  or  5203  EProm  Providing  up  to  4096 
Aiords  of  non-volatile  memory  for  Boot  Loads  to  Complete  Programs. 
Programming  Available  at  Factory  for  $3.00  per  EProm  when  accom- 
panied by  binary  formated  tape. 

■  Each  1702-A  has  its  own  Vgg  clocked  for  Low  Power  Consumption. 

■  Will  work  with  the  weakest  power  supply  based  S-100  buss  computer. 

■  Switched  Selected  Address  in  4K  Blocks. 

■  Switch  selected  wait  states  so  that  even  the  slowest  1702-A  can  work 
in  your  system.  0-8  wait  states. 

■  Solder  Masked  on  both  sides  of  PC  Board. 

■  Component  Screened  on  Component  Side  of  PC  Board. 

Kit  Price:    .  .   $119.00  Assembled  Price:  .  .  .$179.00 


[STATIC  MEMORY  CARD  FOR  SWTPC  6800] 

8192  Words  of  Static  Memory 

Access  Time:   500  nsec.  (250  nsec  on  request) 

Memory  Chip  91 L02  APC 

Battery  Standby 

Address  Selected  8  Ea.  SPST  Dip  Switch 

Low  Power 

All  Lines  Buffered. 

All  IC's  with  sockets 

Solder  Masked  on  both  sides  of  PC  Board. 


Assembled  Price:  .  .  .$359.00 


STATIC  MEMORY  CARD] 

rAIR®IMSAi®and  S-100  buss  compatible. 
Access  Time:   250  nsec  max. 
Ziloq  Speed  Compatible  up  to  4  mhz. 
Memory  Chip:   2102LHPC  or  2102AL-2 
Battery  Standby:  >1 .5  to  4  volts< 
Address  Select:   8  ea.  Spst.  Dip  Switch. 
Wait  States:    None 

Current  Reg.:    Less  than  200  ma  per  1 K 
All  Address,  Control,  and  Data  out  lines  fully  buffered. 
All  IC's  supplied  with  IC  Sockets 
Solder  Masked  on  Both  Front  and  Back  of  P.C.  Board  . 

Kit  Price:    .  .   $295.00  Assembled  Price:  . 


.$395.00 


OTHER  SEALS  ELECTRONIC  PARTS  AVAILABLE 


Item  No. 

Description 

8KSC 

8K  Static  Memory  Card  500  nsec 

WWC 

Wire  Wrap  Card 

88  EXT 

88  Extender  Card 

68  Ext  S 

Extender  Card  (Small)  Bwt«i680apwnR»t.w< 

68  Ext-L 

Extender  Card  (Large) 

68  WWC 

Wire  Wrap  Card  swrpcoBtxicoiinutitimptotWcii 

BBUC 

Battery  Back-Up  Card 

Kit  Price     Assembled  Price 


$269.00 
$  37.50 
$  29.00 
$  19.00 
$  29.00 
$  35.00 
$  55.00 


$369.00 
$  47.50 
$  38.00 
S  25.00 
$  39.00 
$  45.00 
$68.00 


ORDER  DELIVERY:  FROM  STOCK  TO  10  DAYS 


niSEni-SiiV 

ELECTRONICSJNC. 

TELEPHONE  #  615/693-8655 


Circle  15  on  inquiry  card. 


Photo  6:  A  map  of  the 
preferred  states  of  one 
memory  chip.  By  tapping 
into  just  one  of  the 
memory  data  lines  with 
the  display  probe,  it  is 
possible  to  generate  a  map 
of  the  data.  This  data  is 
identical  to  that  of  photo 
5,  but  we  are  now  looking 
directly  at  one  bit,  instead 
of  generating  characters 
from  8  bit  byte  groupings 
of  several  chips.  This  same 
technique  of  looking  at 
one  bit  can  be  done  with 
normal  programmed  dis- 
plays, too,  rather  than  the 
turn  on  pattern  used  here. 


the  system  that  scan  the  dots  making  up  the 
characters  and  the  scanning  of  the  memory 
addresses.  When  all  is  well  to  this  point,  we 
could  connect  the  programmable  memory 
address  lines  to  the  data  inputs  of  the 
character  generator  and  display  one  of  each 
character,  as  Gantt  did  on  page  17  of  June 
1976  BYTE. 

The  next  step  is  the  connection  of  the 
display  memory  to  the  address  lines,  with 
the  display  memory  data  going  into  the 
character  generator.  Turning  on  the  system 


with  the  probe  on  the  character  generator 
output,  we  find  that  the  memory  contents 
will  initially  be  an  arbitrary  pattern, 
producing  a  screen  full  of  garbage  as  in 
photo  5.  Note  how  the  horizontal  "pulling" 
at  the  top  of  the  screen  distorts  the 
characters  in  the  top  line.  As  this  is  actually 
line  26,  it  is  not  used  in  the  display,  and  will 
disappear  after  the  "blank"  signal  is 
connected  as  in  figure  2b. 

The  arbitrary  pattern  is  not  totally  so, 
since  a  virtually  identical  pattern  will  appear 
with  each  turn  on.  This  is  due  to  built-in 
asymmetries  in  the  memory  chips,  with  each 
bit  having  a  preferred  state  to  come  up  in 
when  power  is  initially  applied.  We  can 
connect  our  clip  lead  to  one  bit  of  the 
memory  data  as  in  photo  6  and  see  that  each 
memory  chip  in  the  2  K  by  8  bit  array  has  a 
unique  pattern  visible  in  these  preferred 
states. 

In  photo  6,  notice  the  obvious  division  in 
the  pattern  about  two  thirds  of  the  way 
down  the  display.  This  corresponds  to  the 
division  between  the  lower  1  K  (lines  0  thru 
15)  and  the  upper  1  K  (lines  16  thru  23)  of 
memory,  which  use  different  chips. 

After  we  connect  the  processor  to  the 
input  side  of  the  memory,  we  can  use  this 
same  TV  oscilloscope  connection  to  examine 
the  setting  and  resetting  of  each  bit  at  each 
address  under  program  control.  Setting  the 
memory  to  all  zeros,  each  bit  we  turn  on  will 
appear  as  one  black  block  in  the  display.  The 
TV  oscilloscope  can  thus  be  used  to  insure 
that    the     processor     and    display    address 


Photo  7:  Physical  layout 
of  the  equipment.  The 
author's  display  is  shown 
here  as  it  was  built  on 
prototyping  cards  with  a 
bus  wired  backplane  be- 
tween connectors.  The  clip 
lead  is  shown  here  at- 
tached to  memory  address 
bit  7,  as  used  to  generate 
photo  3.  The  computer 
and  keyboard  are  in  the 
foreground. 


i     ^   ]> 


..-A  ,5  3   « 


2&Stfr 


i£4_JB 


i  8  m$Mi  I 

wife 


7 


56 


correspond  correctly,  and  that  data  is 
written  correctly.  (Of  course,  we  could  just 
as  well  have  put  some  message  on  the 
display,  too.) 

Photo  7  shows  the  hardware  in  my 
system.  The  clip  lead  can  be  seen  connected 
to  the  display  memory  address  line  out  of 
the  timing  board  which  was  used  to  produce 
the  display  in  photo  3.  Since  all  of  the  dot 
signals,  scan  line  signals,  memory  addresses, 
and  the  memory  read  and  write  data  buses 
all  appear  on  the  backplane  wiring  of  the 
system,  virtually  everything  in  the  system  is 
accessible  to  the  TV  oscilloscope  test 
instrument. 

For  even  more  versatility  in  the  TV 
oscilloscope,  it  might  be  useful  to  add  an 
AND  gate  and  another  clip  lead,  so  that  the 
exact  timing  relationships  between  two 
signals  could  be  determined.  Alternately, 
one  of  the  signals  could  be  added  into  the 
video  at  a  different  level  to  produce  a  gray 
image  so  that  the  two  signals  could  be 
differentiated.  [For  looking  at  programmed 
behavior,  the  same  technique  can  still  be 
used  if  the  vertical  or  horizontal  sync  signal 
is  used  as  a  timing  cue.  Much  more  could 
obviously  be  written  on  this  subject  as 
readers  adapt  Ken's  idea  to  personal  use  .  ,  . 
CH/" 


BYTE's  Bugs 


A  Structure  Glitch 


RESOLVE 
FORWARD 
REFERENCE 


DUMP 
SYMBOL 
TABLE 


I  I 

Jack  Emmerichs  called  upon  his 
receipt  of  April  1977  BYTE  and  re- 
ported a  couple  of  errors  in  the  execu- 
tion of  figure  3  on  page  66.  (As  Murphy's 
law  would  have  it,  figure  3  was  moved 
to  the  first  part  of  the  article  at  the  last 
moment  at  lack's  request,  and  he  did 
not  get  to  see  author  proofs  for  that 
one  figure.) 

The  major  glitch  is  corrected  by 
noting  the  above  segment  of  the  dia- 
gram in  its  proper  form.  Two  minor 
errors  are  an  extraneous  "level  3"  at 
the  lower  left  of  the  diagram,  and  an 
extraneous  "Compare  Strings"  box  in 
the  "General  Service  Routines"  shown 
at    the    lower    right    of    the    diagram." 


COMPLETE 
FLOPPY  DISK  SYSTEM 
FOR  YOUR  ALTAIR/IMSAI 
$699 

That's  right,  complete. 

The  North  Star  MICRO-DISK  SYSTEM™  uses  the  Shugart 
minifloppy™  disk  drive.  The  controller  is  an  S-100  com- 
patible PC  board  with  on-board  PROM  for  bootstrap  load.  It 
can  control  up  to  three  drives,  either  with  or  without 
interrupts.  No  DMA  is  required. 

No  system  is  complete  without  software:  we  provide  the 
PROM  bootstrap,  a  file-oriented  disk  operating  system  (2k 
bytes),  and  our  powerful  extended  BASIC  with  sequential 
and  random  disk  file  accessing  (10k  bytes). 

Each  5"  diameter  diskette  has  90k  data  byte  capacity. 
BASIC  loads  in  less  than  2  seconds.  The  drive  itself  can  be 
mounted  inside  your  computer,  and  use  your  existing  power 
supply  (.9  amp  at  5V  and  1.6  amp  at  12V  max).  Or,  if  you 
prefer,  we  offer  a  power  supply  ($39)  and  enclosure  ($39). 

Sound  unbelievable?  See  the  North  Star  MICRO-DISK 
SYSTEM  at  your  local  computer  store.  For  a  high-performance 
BASIC  computing  system,  all  you  need  is  an  8080  or  Z80 
computer,  16k  of  memory,  a  terminal,  and  the  North  Star 
MICRO-DISK  SYSTEM.  For  additional  performance,  obtain 
up  to  a  factor  of  ten  increase  in  BASIC  execution  speed  by 
also  ordering  the  North  Star  hardware  Floating  Point  Board 
(FPB-A) .  Use  of  the  FPB-A  also  saves  about  1  k  of  memory  by 
eliminating  software  arithmetic  routines. 

Included:  North  Star  controller  kit  (highest  quality  PC 
board  and  components,  sockets  for  all  IC's,  and  power  regula- 
tion for  one  drive),  SA-400  drive  (assembled  and  tested), 
cabling  and  connectors,  2  diskettes  (one  containing  file  DOS 
and  BASIC),  complete  hardware  and  software  documentation, 
and  U.S.  shipping. 

MICRO-DISK  SYSTEM  ...  $699  To      place      order,     send 

(ASSEMBLED) $799  check,    money    order    or 

ADDITIONAL  DRIVES.  .  .  $425  ea.  ^  or  MC  card*  with  exp. 

0._^-Tr.„  Z.  __  date  and  signature.  Uncer- 

DISKETTES $4.50  ea.  tifted    checks    require    6 

FPB-A $359  weeks     processing.    Calif. 

(ASSEMBLED) $499  residents  add  sales  tax. 


NORTH  STAR  COMPUTERS,  lf\lC. 
2465  Fourth  Street     » 
Berkeley,  CA  94710      ' 


57 


Circle  16  on  inquiry  card. 


Continued  from  page  6 


SERIAL    ELECTRONIC 
INTERFACE 


BUBBLE  TO 
ELECTRONIC 

INTERFACE 


"^ 


c 


MAJOR    LOOP   WITH  PARALLEL   TRANSFER   TO   MINOR    \\    LOOPS    AND   BACK 


&1k-k-k&Akk---kkA-A-kA-A-& 


64I 

BIT  POSITIONS         / 
IN   EACH  MINOR 
LOOP 


v_y 


w 


\-S 


W 


v_y 


\^y 


W 


ELECTRONIC 

TRANSFER   CONTROL  INTERFACE 
(MAJOR  TO  MINOR,  MINOR  TO  MAJOR, 
OR   CIRCULATE  ) 


W  W 


I44  MINOR  LOOP 
SHIFT   REGISTERS 


Write  Operations: 

1.  Serially  load  major  loop 

2.  Align  minor  loops  to  desired  record 

3.  Transfer  major  loop  to  minor  loops'  top  bit  position 


Read  Operations: 

1 .  Align  minor  loops  to  desired  record 

2.  Transfer  minor  loop's  top  bit  position  to  major  loop 

3.  Serially  unload  major  loop  and  use  data 


Figure  I:  Conceptual  dia- 
gram of  a  magnetic  bubble 
film  memory.  This  dia- 
gram is  concocted  from  a 
general  knowledge  of  the 
way  bubble  memories 
work,  with  captions  based 
en  the  figures  given  by 
Texas  Instruments'  press 
release  on  the  TBM0I03 
memory  part.  The  mem- 
ories to  be  used  must 
also  have  support  hard- 
ware (or  software)  to 
sequence  the  various  steps 
needed  to  randomly  or 
serially  access  desired  144 
bit  blocks  stored  in  the 
chip's  minor  loop  shift 
registers. 


consists  of  serially  loading  the  144  bits  into 
the  major  loop,  then  transferring  all  144  bits 
into  the  minor  loops;  reading  is  done  in 
reverse  order  by  copying  the  currently  posi- 
tioned bits  of  all  144  minor  loops  into  the 
major  loop  then  serially  reading  the  major 
loop.  The  result  is  a  nonvolatile  file  storage 
device  which  has  641  blocks  of  18  bytes 
per  block,  a  total  of  11,538  bytes  in  one 
14  pin  dual  in  line  package  measuring  1.0 
by  1 .1  by  0.4  inches  (2.5  by  2.8  by  1 .0  cm). 
Using  a  volume  parameter  for  memory 
density,  this  elephant  of  a  memory  stores 
200,000  bits  per  cubic  inch  (13,000  bits  per 
cubic  centimeter)  in  a  nonvolatile  magnetic 
medium. 

With  this  short  introduction  to  the 
existence  of  a  new  low  cost,  high  density 
memory  system,  what  are  the  ramifications 
of  such  a  part  for  the  personal  computing 
user?  I'll  confine  my  comments  to  two 
major  classes  of  application  for  the  memory, 
applications  which  take  advantage  of  its 
nonvolatility,  low  cost  of. 22  cents  per  bit  in 
sample  quantities,  and  the  large  size  of  each 
part's  memory.  The  first  class  of  applications 
for  the  bubble  memory  is  as  nonvolatile 
file  storage  in  minimum  size  personal  com- 
puting systems  analogous  to  pocket  calcula- 
tors;   the  second  class  of  application   is   as 


on  line  file  storage  for  larger  general  purpose 
desk  top  or  console  personal  computers. 
Superficially,  the  difference  between  the 
two  classes  of  application  is  in  the  number 
of  these  bubble  memory  parts  used  with  the 
product. 

What  Can  You  Do  with  J  ust  One? 

Consider  first  the  pocket  programmable 
calculator.  At  the  April  6  1977  meeting  of 
the  New  England  Computer  Society,  Bev 
Pettit  of  the  Hewlett-Packard  calculator 
sales  office  in  Lexington  MA  gave  an  excel- 
lent presentation  of  the  functional  capa- 
bilities of  the  new  HP-67  and  HP-97  calcula- 
tors, two  products  which  represent  the 
ultimate  in  pocket  calculator  performance 
to  date.  These  machines  can  be  used  to 
perform  fairly  sophisticated  problems,  with 
overlay  structures  for  data  and  program 
material  swapped  using  the  magnetic  card 
medium  incorporated  in  the  design.  But,  the 
machines  are  limited  by  the  fact  that  there 
is  a  finite  set  of  data  registers  (26,  if  I  recall 
correctly)  and  224  programming  steps.  What 
would  be  the  impact  of  adding  a  bulk  pro- 
gram storage  facility  implemented  with  the 
Tl  bubble  memories  or  equivalent?  Viewed 
only  as  a  calculator,  with  8  bit  command 
codes  for  each  function,  just  one  such  bub- 


58 


ble  memory  chip  would  lead  to  a  device 
which  could  permanently  store  interpretive 
calculator  programs  with  an  aggregate  total 
of  1 1 ,538  program  steps,  or  an  improvement 
of  program  capacity  nearly  two  decimal 
orders  of  magnitude.  Or  viewed  as  data 
memory,  the  same  single  chip  could  ac- 
comodate over  1400  floating  point  numbers 
in  an  8  byte  representation.  (I  have  no 
information  on  the  details  of  the  HP-67's 
internal  representation,  but  assuming 
thirteen  4  bit  BCD  mantissa  digits,  two 
BCD  exponent  digits,  and  one  4  bit  field 
for  signs,  an  8  byte  floating  point  representa- 
tion is  a  fair  estimate  for  the  typical  calcula- 
tor's characteristics.)  But  simply  to  generalize 
the  calculator's  programming  techniques  to 
a  much  larger  program  and  data  storage  field 
is  not  the  ideal  situation.  For  example,  the 
HP-67  and  HP-97  systems  use  an  interpretive 
"label"  operation  code  to  identify  places 
within  a  program.  When  the  label  is 
referenced  by  a  "go  to"  command  or  "call 
subroutine"  command,  the  internal  opera- 
tion is  to  search  linearly  through  the  pro- 
gram memory  field  looking  for  a  label 
operation  code  followed  by  the  correct 
identification.  This  works  quite  acceptably 
in  a  calculator  with  a  224  step  capacity,  but 
would  produce  unacceptably  long  delays  in  a 
memory  field  of  the  size  represented  by  just 
one  of  these  new  bubble  memory  chips. 

As  the  new  capacity  gets  incorporated 
into  the  small  personal  computers  called 
programmable  calculators,  we  can  expect  to 
see  the  beginnings  of  more  sophisticated 
calculator  operating  systems  and  interpreters 
with  features  needed  to  take  advantage  of 
such  memory.  The  lowly  hand  held  calculator 
will  start  having  the  data  management  fea- 
tures of  the  magnetic  disk  based  minicom- 
puter, but  miniaturized  to  numeric  symbols 
and  smaller  total  capacity.  Perhaps  we  might 
even  see  a  limited  (ie:  somewhat  inconvenient 
for  touch  typists  like  myself)  alphanumeric 
data  storage  mode  for  program  names  and 
variable  symbols  in  the  next  generation  of 
calculators,  reminiscent  of  the  "Minisec" 
of  Arthur  C  Clarke's  Imperial  Earth  which 
I   summarized  in  my  April   1977  editorial. 

What  Can  You  Do  with  Just  "N"? 

In  a  more  expensive  console  or  tabletop 
personal  computing  system,  the  same  charac- 
teristics of  nonvolatile  electronically  con- 
trolled bulk  storage  which  expand  the  cal- 
culator concept  can  be  applied  to  the  general 
purpose  computer  system  concept.  Basically, 
the  bubble  memory  makes  possible  a  very 
large  totally  electronic  on  line  buffer  storage 
memory,  at  a  price  compatible  with  personal 
computing  economics.  Since  the  memory  is 


Articles  Policy 

BYTE  is  continually  seek- 
ing quality  manuscripts  writ- 
ten by  individuals  who  are 
applying  personal  systems,  or 
who  have  knowledge  which 
wiU  prove  useful  to  our 
readers.  Manuscripts  should 
have  double  spaced  type- 
written texts  with  wide  mar- 
gins. Numbering  sequences 
should  be  maintained  sepa- 
rately for  figures,  tables, 
photos  and  listings.  Figures 
and  tables  should  be  provided 
on  separate  sheets  of  paper. 
Photos  of  technical  subjects 
should  be  taken  with  uniform 
lighting,  sharp  focus  and 
should  be  supplied  in  the  form 
of  clear  glossy  black  and  white 
or  color  prints  (if  you  do  not 
have  access  to  quality  photog- 
raphy, items  to  be  photo- 
graphed can  be  shipped  to  us 
in  many  cases).  Computer 
listings  should  be  supplied 
using  the  darkest  ribbons  pos- 
sible on  new  (not  recycled) 
blank  white  computer  forms 
or  bond  paper.  Where  possible, 
we  would  like  authors  to  sup- 
ply a  short  statement  about 
their  background  and  experi- 
ence. 

Articles  which  are  accepted 
are  typically  acknowledged 
with  a  binder  check  4  to  8 
weeks  after  receipt.  Honorar- 
iums for  articles  are  based 
upon  the  technical  quality  and 
suitability  for  BYTE's  reader- 
ship and  are  typically  $25  to 
$50  per  typeset  magazine 
page.  We  recommend  that 
authors  record  their  name  and 
address  information  redun- 
dantly on  materials  submitted, 
and  that  a  return  envelope 
with  postage  be  supplied  in 
the  event  the  article  is  not 
accepted." 


59 


Microcomputer 

Quay  80AI 

does  much  more 

with  the  Z-80, 


0U3H 


This  dynamite  new  microcomputer 
system  in  a  kit  moves  data  like  nothing 
else  on  the  market.  Run  it  alone  or 
plug  it  into  an  S100  bus  Altair/IMSAI. 
For  solo  performance,  all  you  need  is 
•an  unregulated  power  supply  and  an 
I/O  device,  Plugged  in,  Quay  80AI  is  a 
CPU,  ROM,  SIO,  and  RAAA  board— run 
any  5100  compatible  device.  BUT 
MORE  THAN  THAT.  Quay  80AI's  Z-80 
CPU  opens  challenging  new  areas  of 
personal  computing. 

Features 

D  S100  bus  compatible.  Plugs  in  one  slorof 
your  Altair  or  IMSAI. 

D  Z-80  w/2.5  MHz  clock. 

D  1  K  static  RAM. 

D  512  byte  (ROM)  monitor.  Comes  up 
running.  Inspect,  alter,  dump,  and  load 
memory;  set  breakpoint  jump  to  user 
program.  Handles  serial  I/O  or  keyboard 
input,  including  setting  baud  rate. 

D  4  UVEPROM  (2708)  sockets. 

□  Serial  I/O.  P5-232  and  20  ma  interface. 

D  Parallel  keyboard  input.  AccepR  stan- 
dard ASCII  keyboard. 

D  UVEPROM  programmer.  Program  2708 
type  UVEPROMs. 

O  2  phase  clock  and  sync.  Run  5 100  com- 
patible peripherals. 

□  1 58  instructions.  All  78  3080  instructions 
plus  80  new  powerful  instructions. 

□  On  board  voltage  regulators. 

Quay  80AI  in  a  kit  is  $450;  factory  as- 
sembled, $600.  Send  for  complete 
details.  Or  for  fast  action  call  201- 
681-8700. 

Mastercharge  ond  BankAmericard  accepted.  COD  with 
1/3  deposit.  NJ.  residents  odd  5%  soles  tox.  Wee  does 
not  include  shipping  ond  handling. 

Dealer  inquiries  invited. 


CORPORATION 

P.O.  Box  386,  Freehold,  NJ.  07728 
Phone:  201-681-8700 


Circle  17  on  inquiry  card. 


otoit  it! 


Given  a  choice  for 

your  home  computer 

investment, 

you'd  want 


city.  With  an  appropriate  operating  system 
and  high  level  language  built  into  the  read 
only  memories,  the  symbolically  named 
files  in  this  bubble  memory  region  can  be 
rolled  in  or  out  of  the  1 6  K  volatile  program- 
mable memory  region  as  desired.  Using  the 
audio  tape  interface  at  the  end  of  a  program- 
ming session,  the  file  memory  could  be 
checkpointed  automatically  onto  tape  while 
the  user  attends  to  some  other  noncomputer 
related  activity  like  eating,  sleeping,  etc. 
(Assuming  an  audio  tape  interface  at 
100  bytes  per  second,  it  would  take  923 
seconds  or  about  15  minutes  to  dump  the 
state  of  the  file  memory,  plus  about  three 
minutes  to  dump  the  programmable  volatile 
memory  of  16  K  bytes.) 

What  would  such  a  conception  cost? 
Perhaps  $2000  to  $3000,  assuming  produc- 
tion quantities  of  the  bubble  memory  cost 
significantly  less  than  $200,  that  the  sup- 
port circuitry  is  not  excessive,  and  that  the 
rest  of  the  system  uses  existing  technology. 
This  would  be  the  minimum  configuration 
of  such  an  "appliance  computer  circa 
1977-1978."  The  logical  next  improvement 
in  performance  would  be  to  incorporate 
one  Shugart  style  minifloppy  disk  file,  at 
perhaps  a  $500  to  $800  increment  in  price. 
The    bubble    film    memory    is   functionally 


totally  electronic  there  is  no  problem  with 
mechanical  design  considerations,  an  advan- 
tage which  is  offset  by  the  constraint  of  not 
having  removable  media  as  is  the  case  for  a 
floppy  disk.  As  the  price  of  the  parts  goes 
down  with  eventual  mass  production,  the 
cost  per  installed  bit  has  the  potential  of 
dropping  well  below  that  of  the  removable 
media  floppy  disk  storage  devices. 

The  implications  of  this  bubble  memory 
for  the  "appliance"  computer  are  most 
interesting.  Let's  consider  what  the  new 
"minimum"  personal  computing  system 
which  incorporates  the  bubble  memory 
medium  might  look  like.  First,  the  sys- 
tem includes  a  typical  microprocessor  de- 
sign with  eight  of  the  contemporary  16  K 
dynamic  memory  parts  for  main  memory, 
with  perhaps  8  K  to  1 6  K  of  systems  soft- 
ware in  read  only  memory.  Peripherals 
built-in  include  video  display  (interface  or 
built-in  monitor  depending  on  the  manu- 
facturer), and  alphanumeric  keyboard,  with 
a  high  speed  audio  cassette  interface  for 
long  term  program  storage.  For  filing  of 
current  programs  and  data  this  minimum 
system  incorporates  eight  of  the  TBM0103 
bubble  memory  units,  giving  a  capacity  of 
92,304    bytes  of  data  or  program  file  capa- 


Flexibility 


You'd  want  8  or  16-bit  digital 

computers  with  fully  expandable 

memories  and  a  variety  of  I/O 

interfaces.  Such  versatility  lets 

you  optimize  the  system  for  your 

hobby,  education  or  small 

business  application. 


60 


Operating 
Cctitfierce 


You'd  want  an  8-bit  computer 

featuring  an  intelligent  front 

panel  with  octal  keyboard  entry 

and  display  for  fast  readout, 
a  resident  monitor  with  built-in 

bootstrap  for  one-button 
program  entry  or  storage.  Or  a 
powerful  16-bit  computer  with 
resident  monitor. 


Tl  happens  to  be  the  first  to  commercially 
market  the  bubble  memories.  (AT&T  has 
already  been  using  them  for  several  months 
in  production  phone  equipment,  but  these 
parts  are  not  available  to  general  commercial 
users.)  If  we  use  the  example  of  the  Shugart 
minifloppy  disk  drives  as  a  prototype  for 
the  delay  from  announcement  to  proven  end 
user  product  for  a  system  of  similar  com- 
plexity, then  we  can  expect  to  see  end  user 
deliveries  of  mass  storage  subsystems  for 
present  day  personal  computer  systems 
sometime  late  this  coming  fall.  (This  editorial 
was  written  April  8  1977.)  As  for  complete 
computer  systems  which  make  the  bubble 
memory  an  integral  part,  I  would  tend  to 
expect  the  first  such  systems  in  the  first 
half  of  1978  or  sooner  depending  upon  the 
cleverness  and  resources  of  the  companies 
which  ultimately  produce  such  products.  In 
the  meantime,  perhaps  some  technologically 
enterprising  reader  will  purchase  the  early 
sample  versions  of  the  bubble  memory  chips 
along  with  documentation,  and  design  a 
homebrew  computer  interface  which  we  can 
publish  for  the  benefit  of  all  BYTE  readers. 
The  bubble  memory,  a  long  awaited  promise, 
has  finally  become  a  technological  and 
commercial  reality  available  for  use  in 
personal  computing  products." 


very  similar  to  a  floppy  disk.  The  bubble 
memory's  data  transfer  rate,  at  50  kbps, 
is  comparable  to  the  transfer  rates  of  the 
small  floppies,  and  its  access  time  to 
blocks  of  data  is  approximately  one  to  two 
orders  of  magnitude  faster  (12.8  ms  versus 
typically  250  to  500  ms  head  positioning 
time  on  a  floppy  disk).  But  the  bubble 
memory  chip  capacity  of  92,000  bits  is 
about  the  same  as  the  capacity  of  the 
typical  5  inch  floppy  disk.  Using  one  floppy 
disk  drive  for  its  removable  media  attributes, 
and  the  standard  permanently  "mounted" 
simulated  floppy  disk  of  the  bubble  memory, 
this  appliance  computer  concept  now  has 
the  ability  to  "instantly"  copy  disk  files, 
sort  data  within  the  constraints  of  two 
92,000  byte  file  regions,  and  do  many 
of  the  "memory  intensive"  tasks  usually 
associated    with    large    interactive    systems. 

When  Will  We  Users  See  Products? 

The  announcement  by  Texas  Instruments, 
accompanied  by  extensive  advertisements  in 
the  electronics  trade  press  for  the  bubble 
memory,  a  64  K  charge  coupled  device, 
volatile  memory  and  large  16  K  dynamic 
programmable  random  access  memories,  is 
aimed  primarily  at  designers  of  new  products. 


Peripherals 


You'd  want  a  complete  line  of 

system  compatible  peripherals 

including  a  CRT  terminal,  paper 

tape  reader/punch,  and  audio 

cassette  mass  storage. 


(more) 


61 


Continued  from  page  34 


Type  03:  External  Symbols 


Byte 
number 

1 

2,7 


Description 

Dollar  sign  ($)  delimiter. 

Up  to  6  ASCII  characters  of  the 
external  symbol  name.  The  name 
is  left  justified,  blank  filled. 

8,9       Record  type  03. 

10,13  Last  address  which  uses  the  ex- 
ternal symbol.  This  is  the  start  of 
a  link  list  which  is  described  be- 
low. The  most  significant  byte  is 
first. 

14,15     Binary  checksum. 

CRLF  Carriage  return,  line  feed. 

The  Mostek  SDB-80  assembler  outputs  the 
external  symbol  name  and  the  last  address  in 
the  program  where  the  symbol  is  used.  The 
data  records  which  follow  contain  a  link  list 
pointing  to  all  occurrences  of  that  symbol. 
This  is  illustrated  in  figure  1 . 

1.  The  external  symbol  record  shows  the 
label   (  LAB  )  and  the  last  location  in 


Documentation  and 
Sorties  Support 


You'd  want  superior 

documentation  with  assembly, 

operation  and  software  manuals 

that  are  the  most  thorough  and 

accurate  around,  plus  a  factory 

and  retail  network  of  trained 
service  personnel  that  can  help 

you  get  up  and  running  fast. 


9 


Software 


You'd  want  each  computer 

supplied  with  full  system  software 

at  no  extra  cost  (assembler, 

editor,  BASIC,  debug).  And 

enhanced  system  software  and 

ready-to-use  applications 

programs  available  at  a 

nominal  cost. 


the   program   which  uses  the  symbol 
(212AH). 

2.  The  object  code  at  21  2A  has  a  pointer 
which  shows  where  the  previous 
reference  to  the  external  symbol  oc- 
curred (200FH). 

3.  This  backward  reference  list  continues 
until  a  terminator  ends  the  list.  This 
terminator  is  FFFFH. 

This  method  is  easy  to  generate  and  decode. 
It  has  the  advantage  of  reducing  the  number 
of  bytes  of  object  code  needed  to  define  all 
external  references  in  a  program.  Intel  defines 
each  external  reference  explicitly. 

•  Type  04:  Relocating  Record 

The  addresses  in  the  program  which  must  be 
relocated  are  explicitly  defined  in  these  re- 
cords. Up  to  16  addresses  (64  ASCII  char- 
acters) may  be  defined  in  each  record. 

Byte 
number  Description 

1  Dollar  sign  ($)  delimiter. 

2,  3  Number  of  sets  of  2  ASCII  char- 
acters. Where  two  sets  define  an 
address. 


62 


Circle  18  on  inquiry  card. 


4-7       ASCII  zeros. 

8,9       04 

10  Addresses  which  must  be  relo- 

cated. 

Last  2 

bytes        Binary  checksum. 

CRLF       Carriage  return,  line  feed. 
•  Assembler  Object  Output  Sequence 

The  SDB-80  Assembler  will  output  object 
records  in  the  following  sequence: 

1.  Internal  symbols   (type  02)   in  alpha- 
betical order. 

2.  External  symbols  (type  03)  in  alpha- 
betical order. 

3.  Data   records    (type  00),  interspersed 
with  relocation  records  (type  04). 

4.  End  of  file  record  (type  01 ). 

Internal  symbol  records  will  be  outputted 
only  if  internal  symbols  are  defined  in  the 
source  program.  The  same  is  true  of  external 
symbol  records.  Relocation  records  always 
will  be  outputted  by  the  assembler." 


It*  fill  tours 


Because  the  world-leader  in 

quality  electronic  kits  has 

researched  the  needs  of  the 

computer  hobbyist  and 

developed  some  of  the  most 

sophisticated  and  affordable 

products  around. 


HEATHKIT 


They're  the  ones  you've  been  waiting  for! 


A  i/aliie/price 


liliTiWli 


You'd  want  all  hardware  systems 

in  stock  in  easily  affordable 
and  buildable  kit  form  from  the 

world's  largest  and  most 

experienced  kit  manufacturer. 

Systems  designed  to  give  you 

more  and  better  features  for  your 

computer  dollar.  And  all  backed 

by  a  "We  won't  let  you  fail"  promise. 


GLOSSARY 

Object  module  The  output  from  an  assembler  is 
called  the  object  module.  One  or  more  object 
modules  can  be  placed  into  memory  by  a  loader. 
The  output  from  the  loader  is  called  a  "load 
module." 

Relocatable  program:  A  program  which  has  extra 
information  in  the  object  .module  is  referred  to  as 
relocatable.  The  extra  information  allows  the 
loader  to  place  the  program  anywhere  in  memory. 
A  nonrelocatable  program  can  be  loaded  only  in 
one  place  in  memory  in  order  to  work  properly. 

Position  independent  program:  A  program  which 
can  be  placed  anywhere  in  memory  is  called  posi- 
tion independent.  It  does  not  require  relocating 
information  in  the  object  module. 

Internal  symbol:  A  symbol  which  is  defined  in  a 
program  and  whose  location  is  made  known  to 
all  other  programs  is  called  an  internal  symbol. 
It  is  also  called  "public"  (Intel),  "defined," 
"global,"  or  "common." 

External  symbol:  A  symbol  which  is  used  in  a 
program  but  which  is  not  defined  in  the  program 
is  called  an  external  symbol.  Such  symbols  must 
be  defined  as  internal  symbols  in  other  programs. 

Linkable  program:  A  program  with  extra  informa- 
tion in  the  object  module  which  defines  internal 
and  external  symbols  is  called  a  linkable  program. 
The  loader  uses  this  information  to  connect,  or 
link,  external  references  to  internal  symbols. 


63 


Speech  Recognition  for  a 
Personal  Computer  System 


James  R  Bocldie 
Bell  Laboratories 
Murray  Hill  NJ  07974 


The  August  1976  issue  of  BYTE  pre- 
sented to  the  personal  computer  user  an 
introduction  to  half  of  the  problem  of  man- 
machine  communication  by  speech:  machine 
generation  of  speech.  Speech  synthesis  has 
been  investigated  since  at  least  the  1800s. 
High  quality  speech  can  be  produced  by  a 
computer  if  it  decodes  utterances  that  have 
been  efficiently  coded  and  stored  in  mem- 
ory. Poorer  quality,  but  sometimes  accept- 
able speech  can  be  synthesized  by  electron- 
ically simulating  the  human  speech  produc- 
ing mechanism. 

Speech  communication  in  the  other 
direction,  machine  recognition  of  speech, 
is  usually  considered  to  be  a  harder  task.  The 
purpose  of  this  article  is  to  present  some  of 
the  problems  and  to  introduce  some  solu- 
tions that  may  be  realized  by  the  personal 
computer  enthusiast. 

The  ideal  speech  recognizer  would  be  a 
machine  that  could  accept  casually  spoken 
sentences  from  many  speakers  with  different 
dialects  and  transcribe  them  in  real  time  into 
written  text  or  translate  them  into  com- 
mands for  controlling  some  function.  Un- 
fortunately, there  are  at  least  five  major  pro- 
blem areas  in  speech  recognition  that  are 
still  incompletely  solved. 

•    The   Continuous  Speech   Problem.    In 

ordinary  conversational  speech  our 
words  tend  to  "run  together"  acous- 
tically. Say  "How  are  you"  and  "How 
(pause)    are    (pause)    you."    The   con- 


tinuous version  is  uttered  almost  as 
a  single  word.  What  is  the  best  pro- 
cedure for  segmenting  such  an  utter- 
ance into  words? 

•  The  Multiple  Speaker  Problem.  People 
say  the  same  words  differently.  Can  a 
machine  allow  for  these  differences 
or  must  it  be  "tuned"  to  each  indivi- 
dual user? 

•  The  Limited  Vocabulary  Problem. 
Error  rates,  recognition  rates  and 
memory  requirements  increase  with 
vocabulary  size.  How  many  words 
can  be  reliably  handled  by  a  machine? 

•  The  Vocabulary  Entry  Problem.  The 
words  in  the  vocabulary  have  to  be 
described  to  the  computer  in  some 
way.  What  is  the  most  efficient  way? 

•  The  Noise  Problem.  Speech  is  filtered 
by  some  transmission  process  or 
corrupted  by  noise  in  transmission 
media  such  as  telephone  or  radio. 
What  is  the  best  signal  processing 
technique  for  these  conditions? 

These  are  the  problems  that  concern 
many  industrial  and  academic  research  lab- 
oratories using  the  most  sophisticated  tech- 
niques and  equipment  available.  However, 
there  are  some  realistic  goals  for  a  speech 
recognizer  in  a  personal  computer  system. 
That  is,  it  should  be  possible  to  build  a  sys- 
tem which  can  accept  isolated  words  from  a 
limited  vocabulary  of  ten  -to  20  words 
spoken  by  a  speaker  whom  the  machine  has 
been  trained  to  understand.  These  goals  are 
well  within  the  capabilities  of  most  contem- 
porary microprocessors. 

Several  such  systems  have  already  been 
designed  using  a  modest  amount  of  discrete 


64 


Figure  I:  A  speech  encoding  model.  Messages  from  the  brain  in  the  form  of  desired  words  are  processed  through  a  series  of 
transformations  to  produce  the  finished  speech.  These  messages  come  in  the  form  of  "phonemes,  "  or  word  building  blocks  (see 
table  I),  which  make  up  the  desired  word.  This  code  is  translated  into  appropriate  neuromuscular  signals  which  control  the 
speech  "articulators":  the  vocal  cords,  vocal  tract,  lips,  tongue  and  teeth.  The  other  parameters  in  the  figure  show  how  dialect, 
emotions,  context  and  external  noises  can  all  have  an  effect  on  the  final  speech. 


logic.  (See  the  first  six  references  in  the 
bibliography  at  the  end  of  this  article.)  Each 
of  these  systems  can  be  easily  duplicated 
with  a  small  amount  of  hardware  such  as  a 
microphone,  amplifier,  filters,  an  analog  to 
digital  converter  and  a  microcomputer.  This 
paper  will  show  how  one  of  these  well 
known  recognizers  can  be  implemented. 
But  first,  a  few  basic  facts  about  human 
speech  production. 

The  Speech  Code 

In  order  to  construct  a  system  for  de- 
coding speech  you  should  know  how  the 
acoustic  signal  is  encoded  with  the  desired 
message.  One  way  of  looking  at  the  process 
is  shown  in  figure  1.  The  message  from  the 
brain  may  be  thought  of  as  going  through  a 
series  of  transformations  which  modify  it 
by  many  factors.  The  word  idea  or  linguis- 
tic information  is  first  translated  into  speech 
sound  units  called  phonemes.  This  "code"  is 
a  collection  of  the  descriptors  of  the  sounds 
necessary  to  say  the  words.  In  English  there 
are  approximately  40  basic  types  of  sounds 
which  are  used  to  construct  our  entire 
vocabulary.  The  phonemic  code  is  translated 
by  the  central  nervous  system  into  neuro- 
muscular signals  for  controlling  the  physical 
speech  making  apparatus  or  articulators'.  The 
articulators  "modulate"  the  sound  generated 
by  the  vocal  cords  and  produce  the  radiated 
acoustic  signal. 

This  process  has  sources  of  error.  The 
phonemic  codes  for  various  dialects  are 
different  from  one  another.  A  speaker  may 
say  the  same  word  many  different  ways  de- 
pending on  context  or  physical  and  emo- 
tional state.  Differences  in  the  sizes  of 
people's  articulators  account  for  variations 
between  speakers.  Day  to  day  changes  in 
the  articulators  (due  to  a  head  cold,  for  ex- 
ample) can  cause  variations  in  the  way  a 
given  person  sounds.  Finally,  the  acoustic 
signal  itself  may  be  corrupted  by  noise  or 
filtering. 

The   message  coding  process   produces  a 


signal  which  contains  much  information  that 
is  not  significant  to  the  intended  message 
and  which  makes  any  direct  comparison  of 
speech  waveforms  difficult  if  not  impossible. 
The  extent  of  the  coding  inefficiency  can  be 
seen  by  a  simple  example.  The  following 
sentence: 

"The    objective    of    this   section    is   to 
develop  these  techniques." 

contains  60  characters  and  can  be  spoken  in 
about  three  seconds.  Using  a  5  bit  code  for 
alphabetic  characters,  real  time  transmission 
at  speech  rates  would  require  only  100  bps. 
If  the  utterance  were  transmitted  with  a 
string  of  42  phonemes  coded  with  six  bits 
each,  then  84  bps  would  be  necessary.  How- 
ever, if  the  speech  signal  itself  were  band- 
limited  at  3  kHz,  sampled  at  6  kHz,  and 
quantized  to  256  levels  or  eight  bits,  real 
time  transmissions  would  require  a  rate  of 
48,000  bps.  If  a  computer  could  analyze  this 
digitized  speech  in  real  time  it  would  have  to 
process  one  8  bit  speech  sample  every 
160  jis.  A  microcomputer  with  a  cycle  time 
of  500  ns  would  have  only  320  cycles  be- 
tween speech  samples.  That  does  not  allow 
time  for  very  many  instructions  to  analyze 
and  match  the  data  with  reference  wave- 
forms. The  direct  storage  of  the  waveform 
would  require  6,000  bytes  of  memory  for 
every  second  of  speech.  It  should  be  clear 
that  it  is  desirable  to  have  a  method  of 
rapidly  extracting  the  useful  information, 
thereby  reducing  the  amount  of  data  storage 
and  computation  time.  A  look  at  the  speech 
production  mechanism  provides  some  clues 
for  data  analysis  and  reduction. 

Speech  Parameters 

Speech  sounds  originate  from  two 
sources.  So-called  "voiced"  sounds  are  made 
by  the  vocal  cords  and  make  up  vowel-like 
sounds.  The  vocal  cords  produce  periodic 
bursts  of  air  through  the  vocal  tract  at  a 
repetition  rate  of  about  1  25  to  200  Hz. 

"Unvoiced"    sounds    or    "fricatives"    are 


65 


Voiced 

Example 

AE 

bad 

AH 

father 

Al 

bite 

AW 

bought 

AY 

bay 

EH 

bet 

EE 

beet 

ER 

bird 

IX 

fit 

OU 

boast 

UX 

book 

UH 

but 

UU 

boot 

WX 

win 

YX 

yes 

RX 

rip 

LX 

lit 

MX 

man 

NX 

not 

NG 

ring 

Fricatives 

FX 

fan 

TH 

bath 

SX 

sip 

SH 

ship 

CH 

church 

HX 

hand 

Combinations  o 

f  Voiced  and 

Fricative  Sounc 

s 

VX 

van 

DH 

than 

ZX 

zip 

ZH 

measure 

Stops 

JH 

jump 

PX 

pan 

TX 

tan 

KX 

can 

Voiced  Stops 

BX 

ban 

DX 

dan 

GX 

gab 

K 


2000 


£ 

b- 

O       1500 

> 
u 
Z 
lu 
=>       1000 


Table  1:  Speech  phonemes.  In  English  there 
are  approximately  40  basic  types  of  sounds 
which  are  used  to  construct  the  entire 
vocabulary.  These  sounds  are  called 
"phonemes. "  The  phonemes  are  not  pro- 
nounced literally,  but  rather  serve  as  symbols 
for  their  respective  sounds.  The  phonemic 
code  is  translated  by  the  central  nervous 
system  into  neuromuscular  signals  for  con- 
trolling the  physical  speech  making  apparatus 
or  "articulators."  "Voiced"  phonemes  are 
the  vowel-like  sounds  which  are  produced 
in  the  vocal  cords  as  periodic  bursts  of  air 
from  125  to  200  times  a  second.  "Un- 
voiced" phonemes  or  "fricatives"  are  noise- 
like sounds  made  by  forcing  air  through 
constrictions  in  the  mouth.  Some  phonemes 
are  combinations  of  voiced  and  unvoiced 
sounds.  "Stops"  result  from  momentary 
blockage  of  air  flow  (and  sound). 


noise-like  and  are  made  by  forcing  air 
through  constructions  in  the  mouth.  If  the 
air  flow  is  completely  blocked  for  a  mo- 
ment, the  sound  is  called  a  "stop."  Some- 
times we  make  both  voiced  and  fricative 
sounds.  Table  1  classifies  various  phonemes 
into  these  source  types.  Phonemes  have 
special  symbols  that  are  often  used,  but  this 
table  uses  a  machine  readable  format. 

The  vocal  tract  is  like  a  pipe  from  the 
vocal  cords  to  the  lips  which  has  several 
natural  resonant  frequencies  called  "for- 
mants."  This  pipe  acts  like  a  filter  that  most 
readily  passes  sounds  whose  frequencies  are 
the  same  as  the  formants.  The  three  most 
prominent  formants  are  centered  around 
500,  1500  and  2500  Hz  but  they  vary  with 
changes  in  position  of  the  tongue,  lips  and 
mouth.  The  voiced  and  unvoiced  sounds  can 
be  thought  of  as  "carrier"  signals  that  are 


200       400        600         800        IO0O        I200 
FREQUENCY  OF    FORMANT   I    (Hz) 


"modulated"  by  the  resonances  in  the  vocal 
tract. 

It  is  well  known  that  there  is  a  correspon- 
dence between  phonemes  and  the  formant 
frequencies.  In  fact,  it  is  only  necessary  to 
know  the  first  two  formant  frequencies  in 
order  to  identify  many  vowel  sounds.  Figure 
2  shows  a  map  of  several  vowej  sounds  in  a 
plane  formed  by  the  first  two  formants.  For 
example,  if  you  knew  that  for  some  interval 
of  a  speech  utterance  the  first  formant  was 
at  800  Hz  and  the  second  at  2500  Hz,  then 
you  might  guess  that  the  speech  sound  was 
the  phoneme  "EH." 

A  nice  property  of  formant  data  is  that 
it  changes  rather  slowly.  It  is  necessary  to 
sample  the  formant  frequencies  only  every 
10  to  20  ms  in  order  to  keep  up  with  chang- 
ing phonemes.  This  means  that  the  motion 
of  two  formants  could  be  stored  in  only  100 
bytes  per  second  of  speech  as  opposed  to 
6000  bytes  per  second  for  the  waveform 
itself. 

Naturally,  we  would  like  a  technique  for 
easily  measuring  the  first  two  formant 
frequencies  by  looking  at  the  waveform 
data.  The  most  accurate  methods  require 
either  a  lot  of  high  speed  computation  or 
special  purpose  hardware.  Fortunately  there 
is  a  very  simple  way  to  get  an  estimate  of 
the  formants  which  is  most  suitable  for 
microcomputer  processing. 

Zero  Crossing  Analysis 

Since  the  late  1940s  it  has  been  known 
that  the  amplitude  of  the  speech  waveform 
carries  little  information.  Most  of  the  use- 
ful information  can  be  obtained  from  just 
the  knowledge  of  the  number  of  times  the 
signal  waveform  crosses  the  zero  axis.  This 
is  called  zero  crossing  analysis.  [This  method 
would  lend  itself  perfectly  to  Walsh  trans- 
form analysis.  .  .CM/  If  you  count  the  num- 
ber of  times  the  signal  changes  sign  in  a  fixed 
interval,  say  every  10  to  20  ms,  you  can  get 
numbers  which  closely  follow  the  changes 
in  the  first  formant  frequency.  If  you  first 
emphasize  the  higher  frequencies  by  high 
pass  filtering,  then  the  zero  crossing  rate 
tracks  the  second  formant  frequency. 


Figure  2:  Vowel  phonemes  on  the  formant 
plane.  "Formants"  are  the  natural  resonant 
frequencies  of  the  vocal  tract.  These  reson- 
ances are  similar  to  the  resonant  vibrations 
of  organ  pipes  or  the  characteristic  sound 
of  an  empty  bottle  when  air  is  blown  across 
it.  The  three  most  prominent  formants  are 
centered  around  500,  1500  and  2500  Hz, 
but  they  vary  with  changes  in  position  of 
the  tongue,  lips  and  mouth. 


66 


Although  the  zero  crossing  rates  do  not 
give  accurate  estimates  of  formant  fre- 
quencies, they  do  contain  enough  informa- 
tion to  partially  separate  the  vowels  for 
recognition  purposes.  Figure  3  shows  a  map 
of  vowels  on  a  high  pass  versus  low  pass 
zero  crossing  rate  plane. 

There  are  many  advantages  in  using  zero 
crossing  analysis  techniques  in  digital  speech 
recognition.  One  of  them  is  that  the  neces- 
sary hardware  is  simple.  Since  only  the  sign 
of  the  waveform  is  important,  only  one  bit 
per  sample  is  needed,  which  eliminates  a  re- 
quirement for  an  analog  to  digital  converter 
in  the  system.  The  analysis  can  easily  be 
done  in  real  time  since  no  multiplications  are 
involved  -  only  counting.  The  zero  crossing 
parameters  can  be  measured  with  simple 
hardware  or  software  as  the  signal  comes  in, 
which  eliminates  the  necessity  of  storing  the 
waveform.  Because  the  amplitude  informa- 
tion is  not  used,  the  analysis  is  independent 
of  voice  volume  and  inflection.  This  makes 
zero  crossing  measurements  somewhat  less 
dependent  upon  characteristics  of  individual 
speakers. 

Pattern  Matching 

After  the  acquisition  of  the  zero  crossing 
parameters,  the  identification  of  the  word 
can  be  done  using  one  of  two  simple 
processes:  in  a  one  step  approach,  the  para- 
meter data  is  directly  compared  with 
reference  patterns  (sometimes  called 
templates)  for  each  word  in  the  vocabulary. 
The  closest  match  is  chosen  as  the  most 
probable  utterance.  In  a  two  step  method, 
the  parameter  data  is  first  converted  into  a 
string  of  phonemes.  Then  this  string  is  com- 
pared with  a  phonetic  representation  of  the 
words  in  the  vocabulary. 

Both  methods  have  problems.  The  one 
step  comparison  suffers  if  the  word  is 
spoken  at  a  different  rate  from  the  words  in 
the  sample  set  unless  some  technique  is  used 
to  find  the  best  time  alignment.  The  time 


Figure  4b:  A  diagrammatic  representation  of 
the  word  "SIX"  on  the  zero  crossing  plane 
using  a  form  of  state  diagram.  In  this  graph 
the  high  and  low  pass  functions  from  figure 
4a  are  plotted  against  one  another  in  stylized 
fashion  to  better  show  how  the  zero  cross- 
ing rates  change  as  the  word  Is  pronounced. 
(Note  that  the  word  begins  and  ends  with 
the  same  phoneme,  SX.)  The  signal  is  split 
into  two  bandpass  regions  because  these 
particular  regions  reveal  key  attributes  of 
English  words  which  can  act  as  types  of 
"fingerprints"  of  the  words  for  later  indenti- 
fication. 


O  uj 

in  < 

O  I 

oc  o 

u  (/I 

o  w 

uj  °- 

fM  I 

li.  52 

O  I 


Figure  3:  Vowel  formants 
on  the  zero  crossing  plane. 
For  comparison  purposes 
the  formants  in  figure  I 
are  plotted  here  on  the 
zero  crossing  plane.  The 
term  "zero  crossing  rate" 
refers  to  the  number  of 
times  that  the  voice  signal 
changes  its  polarity  per 
unit  time  (see  figure  4a). 


NUMBER  OF  ZERO   CROSSINGS    PER    16  mS 
(LOW  PASS  CHANNEL) 


ZERO 

CROSSING 

RATE 


SX 


IX' 


-        KX        - 


SX' 


TIME 


Figure  4a:  A  plot  of  the  word  "SIX"  showing  the  zero  crossing  rate  as  a 
function  of  time.  The  word  is  shown  split  into  its  four  phonemes.  In  this 
case,  the  signal  is  first  processed  through  two  bandpass  filters.  The  number  of 
zero  crossings  is  then  determined  by  the  computer.  Results  for  both  filters  are 
shown.  As  the  graph  indicates,  there  Is  a  very  short  period  of  silence  during 
the  pronunciation  of  the  KX  phoneme  which  can  be  verified  by  slowly 
pronouncing  the  word  "six.  " 


LOW    PASS    ZERO    CROSSING    RATE 


SILENCE 
AT   ORIGIN 


67 


SPEECH   INPUT  STAGE 


MICROPROCESSOR 
INTERFACE 


MICROPHONE 

CD 


ici  ; 

PIN  14:5V  DC 
PIN    7:GND 


PARALLEL    INPUT 
PORT 


Figure  5:  Speech  filtering  circuitry.  A  voice  signal  is  picked  up  by  the  microphone  and  preamplified.  It  is  then  sent  through  a 
low  pass  filter  made  up  of  CI  and  R1  whose  cutoff  frequency  is  3  kHz.  The  signal  is  next  passed  through  a  I  kHz  high  pass  filter 
and  a  I  kHz  low  pass  filter  as  shown.  The  two  signals  then  go  to  the  microprocessor  interface  for  further  processing.  ICI,  which 
forms  the  basis  for  this  circuit,  is  a  quad  LM  3900  op  amp.  The  diode-like  symbols  shown  on  the  four  amplifiers  indicate  the 
use  of  "current  mirrors"  for  the  noninverting  inputs.  For  a  detailed  discussion  see  National  Semiconductor's  book,  Linear 
Integrated  Circuits,  page  2-250  and  following. 


NUMBER  OF  ZERO 
CROSSINGS  PER 
l6mS 

(HIGH  PASS 
CHANNEL)       80 


64 


32 


P(29) 

P(30) 

P(7) 

P(8) 

P(l) 

P(2) 

P13) 

P(4) 

P(5] 

P(6) 

6  13  19  25  32 

NUMBER  OF  ZERO  CROSSINGS  PER  l6mS(L0W  PASS  CHANNEL) 

Figure  6:  In  order  to  implement  the  speech  recognition  algorithm,  60  samples 
of  speech  over  roughly  I  second's  duration  are  sequentially  processed 
through  the  circuit  illustrated  in  figure  5.  For  each  of  the  60  intervals 
the  number  of  high  and  low  pass  zero  crossings  per  second  is  counted  and 
stored  in  a  software  array  corresponding  to  the  regions  in  this  figure.  (This 
figure  is  not  to  scale.)  After  this,  a  straightforward  statistical  correlation  is 
performed  on  the  array  to  compare  it  with  a  series  of  word  models  in  the 
memory  and  to  arrive  at  the  most  likely  match. 


dependence  can  be  eliminated  by  consider- 
ing the  pattern  of  the  data  plotted  on  a  zero 
crossing  plane.  Figure  4  shows  how  the  word 
"six"  might  be  plotted.  The  one  step 
method  has  the  double  disadvantage  that  a 
lot  of  memory  is  required  for  template  stor- 
age and  that  the  matching  may  be  more  time 
consuming.  Two  step  systems  use  less 
memory  in  the  template  storage  but  depend 
on  the  performance  of  an  imperfect  phon- 
eme indentifier.  The  phoneme  matcher  must 
be  able  to  tolerate  errors  such  as  missing, 
mislabeled  or  extraneous  phonemes  in  the 
hypothesized  string.  For  example,  the  out- 
put from  a  phoneme  indentifier  given  in  the 
utterance  "six"  (or  "SX  IX  KS  SX")  might 
be  "SX  SX  EE  IX  IX  EH  KX  SX  SX." 

A  Practical  Speech  Recognizer 

You  have  probably  realized  by  now  that 
there  are  many  possible  approaches  to  the 
analysis  and  recognition  of  speech.  With 
this  in  mind,  we  can  now  consider  in  detail 
an  isolated  word  recognizer  that  can  be 
implemented  on  most  microcomputer 
systems.  This  algorithm  is  based  on  one  of 
the  earliest  successful  word  recognition  cx- 


68 


The  book  you've  waited  for  is  here! 


„** 


<e 


^ 


.</ 


o 

% 


& 

^ 


«£**«.      INDEX&  REGISTER 


ROMs 


/ 

/ 


&>*     %    EPROMs 


UNDERSE4NDING 

COMPUTERS 


AND  SMALL  COMPUTER 
SYSTEMS 


_ 


What's  an  accumulator?  How  do  you  use  relative  addressing?  Indexed  addressing? 
Boolean  logic  operations?  Does  a  program  counter  count  programs?  What's  an  I/O 
port?  What  are  EPROMS?  What  is  paging?  A  stack?  The  difference  between  a  dot 
and  vector  CRT  display?  How  do  you  copy  programs  using  an  ordinary  tape 
recorder?  What  can  a  microcomputer  really  do?  What  kind  of  personal  computer 
system  should  I  buy? 
These  and  hundreds  of  other  questions  about  microcomputers  are  answered 
in  this  profusely  illustrated,  easy-reading  "must"  book.  Here  are  the  funda- 
mental concepts  behind  the  operation  of  virtually  all  microcomputers . . . 
written  in  simple  English  so  that  anyone  can  gain  the  extra  knowledge 
that  will  let  him  or  her  read  and  understand  computer  magazines  and 
manufacturers'  literature  and  feel  "at  home"  around  computers.  Here 
are  just  some  of  the  items  discussed  . . . 

How  a  CPU  is  organized  and  how  it  follows  sequences  of  directives 
to  solve  problems. 

•  Illustrates    basic    instructions   from   almost   every   class    of 
microprocessor. 
•  Discusses  common  memory  addressing  modes  — illustrates 
\  typical  uses. 

\  •  What  you  must  know  to  tell  a  computer  what  to  do 

%i  when  using  machine  language  programming  methods. 

•  Explains  use  of  flow  charts;  program  worksheets; 
hand  assembly  of  source  codes  into  object  codes; 
memory  maps;  purpose  of  an  Editor,  Assembler, 
Jjfk  Monitor. 

•  Benefits  of  using  a  high  level  language 
;||k  —introduction  to  BASIC. 

•  How  a  computer  communicates. 
Types  of  commonly  used  input/out- 
put devices  and  their  operational 
concepts. 

•  Practical  aspects  of  selecting  a 
small  computer  system. 
Plus,    hundreds    of    other    practical 
facts  and  information. 
If  you're  at  all  curious  about  small  computers, 
you  must  own  this  300  page  no-nonsense  text 
that  reads  like  a  simple  book,  and  includes 
an  easy-to-use  glossary  of  key  microcomputer 
oriented     words.     UNDERSTANDING     MICRO- 
COMPUTERS. The   name   says   it  all.  And,   it 
all  costs  only  $9.95.  Order  your  copy  today! 

AT  1CEEEI    COMI LITER 
fccONIlMIING   INC. 

^^-  PO    Box   133  —  PP   STN 

Milford,  CT  06460 

Price  shown  for  North  American  customers.  Master 
Charge,  Postal  and  Bank  Money  Orders  preferred. 
Personal  checks  delay  shipping  up  to  4  weeks.  Pric- 
ing, specifications,  availability  subject  to  change 
without  notice.  SCELBI  Books  are  available  in  many 
fine  Computer  Stores. 

Circle  19  on  inquiry  card. 


FOR  J   =   1  TO  60 

F1(J)   =  0 

F2  (J)   =  0 

FOR  I    =    1  TO  100 

[Delay  for  160  nS  loop  time] 

INPUT  X 

X1   =  XOR   (X,  X0) 

IF  XI  >  1  THEN  F2  (J)    ■■ 

IF  (X1  =  1)    OR  (X1  =3) 

X0  =   X 

NEXT  I 

NEXT  J 

=   F2  (J)+1 
THEN  F1 

(J) 

;lnput  speech  port 

;Exclusive  OR  input  with  last  sample 
;State  change  or  bit  1 
F1  (J)  +1   ;State  change  or  bit  0 

;Save  last  sample 


Listing  1 :  The  input  algorithm.  Arrays  Fl  and  F2  store  the  number  of  zero 
crossing  counts  in  each  16  ms  interval  for  the  low  pass  and  high  pass  channels 
respectively.  This  listing,  like  the  following  listings,  is  written  in  BASIC  for 
illustrative  purposes,  but  it  must  be  translated  into  machine  language  to 
achieve  real  time  performance. 


100 


200 


FOR  I   =  1  TO  30 

P  (I)   =0 

NEXT  I 

FOR  J    =    1  TO  60 

FOR  11    =    1  TO  5 

IF  G1  (ID  >  F1  (J)  THEN  100 

NEXT  11 

11  =  6 

FOR  12   =    1  TO  4 

IF  G2  (12)  >  F2  (J)  THEN  200 

NEXT  12 

12  =   5 

I    =    (12-11*6+11 
P(l)    =  P  (I)  +1 
NEXT  J 


FOR  J   =   1  TO  L  Correlate 

R  (J)    =  0 

FOR  I    =    1  TO  30 

R  (J)    =   R  (J)  +  P  (l)*T  (I,  J) 

NEXT  I 

NEXT  J 

J1    =   1  ;Pick  best 

R1    =   R  (1) 

FOR  J   =   2  TO  L 

IF  R  (J)  >  R1  THEN  R1  =  R  (J)  :  J1  =  J 

NEXT  J 

PRINT  J1 


INPUT  "TEMPLATE  NUMBER,"  L 

FOR  I    =    1  TO  30 

P1  (I)    =   0 

NEXT  I 

FOR  K    ■    1  TO  8 

INPUT  "READY?",  Q 

[Call  routine  for  sampling  speech  and  computing  P] 

FOR  I    =    1  TO  30 

P1  (I)    =   P1  (I)  +  P  (I) 

NEXT  I 

NEXT  K 

FOR  I    =    1  TO  30 

T  (I,  L)    =    P1  (l)/8 

NEXT  I 


Listing  2:  The  classifica- 
tion and  accumulation  rou- 
tine. This  routine  takes  the 
information  from  arrays 
Fl  and  F2  and  stores  it  in 
array  P,  which  represents 
the    zero    crossing  plane. 


Listing  3:  The  correlation 
routine.  This  routine  com- 
pares the  completed  array 
from  listing  2  with  various 
word  models  in  memory 
and  uses  standard  statistical 
methods  to  find  a  best 
match.  For  a  ten  word 
vocabulary  the  entire 
speech  recognition  algo- 
rithm can  be  run  in  less 
than  69  ms. 


Listing  4:  The  template 
generation  routine.  A 
"template"  is  a  word 
model  in  the  form  of  an 
array.  This  routine,  which 
can  be  run  off  line  (in 
BASIC  if  desired,  since 
there  are  no  time  restric- 
tions), is  used  to  generate 
all  of  the  word  models  in 
the  vocabulary  desired. 
Eight  samples  of  a  given 
word  are  uttered  by  the 
operator  and  averaged  to- 
gether to  create  each  word 
template. 


periments  (see  reference  1).  Originally  built 
with  mainly  analog  components,  it  could 
recognize  telephone  quality  digits  from  a 
single  speaker  with  an  accuracy  better  than 
97  percent  in  real  time.  A  microcomputer 
using  a  minimum  amount  of  extra  hardware 
can  easily  duplicate  this  performance. 

The  input  stage  is  shown  in  figure  5.  The 
speech  is  low  pass  filtered  at  3  kHz  and  split 
into  a  1  kHz  high  pass  channel  and  a  1  kHz 
low  pass  channel.  These  filtered  signals  are 
compared  with  a  reference  voltage  level  and 
logic  outputs  indicate  the  result  of  the  com- 
parison. That  is,  a  logic  0  results  from  a  sig- 
nal level  greater  than  the  reference  and  a 
logic  1  results  from  a  level  less  than  the  ref- 
erence. Proper  adjustment  of  the  reference 
levels  will  allow  the  measurement  of  the  sign 
of  the  signal.  The  outputs  from  this  stage  are 
connected  to  the  two  least  significant  bits  of 
a  parallel  input  port. 

The  microcomputer  must  sample  the 
input  port  every  160  p.s  and  count  the  num- 
ber of  state  changes  (zero  crossings)  over  16 
Ms  intervals.  If  the  input  is  sampled  for  60 
intervals,  then  the  machine  will  have  "list- 
ened" for  0.96  seconds,  which  is  more  than 
enough  time  to  pronounce  most  individual 
words. 

Listing  1  is  the  input  algorithm.  It  is 
written  in  BASIC  for  illustrative  purposes, 
but  it  must  be  efficiently  translated  into 
machine  language  to  achieve  real  time 
performance.  All  variables  are  1  byte 
integers  unless  otherwise  noted.  The  inner 
loop  must  be  executed  once  every  160  us. 
This  can  be  done  by  using  software  delays 
or  an  external  clock.  The  listing  does  not 
show  details  of  how  this  delay  is  accom- 
plished. The  F1  and  F2  arrays  are  used  to 
store  the  zero  crossing  counts  in  each  16  ms 
interval  for  the  low  pass  and  high  pass 
channels  respectively.  Of  course,  the  "IF" 
statements  can  be  replaced  by  a  simple 
"rotate  into  carry,  branch  if  carry"  in  the 
machine  language  code. 

The  next  step  is  to  divide  the  low  pass 
versus  high  pass  (F1,  F2)  plane  into  30  re- 
gions as  shown  in  figure  6.  Then  for  each  of 
the  60  intervals,  the  zero  crossing  counts  in 
Fl  and  F2  are  located  on  this  plane  and 
associated  with  one  of  the  regions.  A  30  ele- 
ment array  P  keeps  up  with  the  number  of 
points  in  each  region.  This  distribution  of 
points  in  the  Fl,  F2  plane  is  used  as  the 
input  pattern  to  be  compared  with  the  refer- 
ence patterns. 

Listing  2  illustrates  the  classification  and 
accumulation  routine.  TheG1  and  G2  arrays 
contain  the  information  about  the  division 
of  the  F1,  F2  plane.  They  should  be  initial- 
ized (in  BASIC  or  equivalent  machine  code) 
as  follows: 


70 


READG1 

DATA  6,  13,  19,25,32 

READG2 

DATA  32,  48,  64,  80 

The  calculation  of  index  I  involves  a  multi- 
plication by  a  constant  6.  This  can  be  most 
quickly  done  by  coding: 

I  =(I2-1)*2  +  (I2-1)*4+  11 

This  BASIC  statement  can  easily  be  trans- 
lated into  machine  language  using  two  left 
shifts  and  addition  operations. 

The  pattern  matching  is  done  by  correlat- 
ing the  P  array  with  precomputed  reference 
patterns  for  each  word  in  the  vocabulary. 
The  word  with  the  best  match  is  picked  as 
the  most  likely  utterance. 

Listing  3  gives  the  pattern  matcher 
routine,  expressed  in  BASIC.  L  is  the  num- 
ber of  words  in  the  vocabulary.  R  is  an  array 
that  contains  the  calculated  correlation 
values  for  each  word.  T  is  a  30  by  L  array  of 
reference  templates.  The  number  corres- 
ponding to  the  template  which  best  matches 
the  input  is  printed  as  J 1 .  The  calculation  of 
R  requires  30  times  L  multiplications,  which 
can  be  very  time  consuming.  For  a  ten  word 
vocabulary  and  an  8080  processor  (one  8 
by  8  bit  software  multiply  in  230  /us)  the  R 
calculation  can  be  done  in  69  ms.  Also  note 
that  while  the  numbers  in  P  are  always 
positive,  this  does  not  apply  to  the  numbers 
in  T.  R  should  be  a  double  precision  (2  byte) 
number  to  avoid  overflow. 

The  templates  are  generated  by  averaging 
several  sample  patterns  for  each  word.  Much 
of  this  task  can  be  done  off  line  rather  than 
in  real  time,  so  it  can  be  coded  in  BASIC  or 
other  interpretive  languages.  A  direct 
machine  language  coding  is  relatively  straight- 
forward, however. 

Listing  4  shows  how  eight  patterns  are 
averaged  to  form  a  template.  The  program 
uses  the  code  of  listings  I  and  2  to  obtain 
the  pattern  in  array  P.  The  accumulation  of 
the  P1  array  should  be  done  with  2  byte 
arithmetic.  The  division  by  8  is  accom- 
plished by  a  simple  right  shift  three  bit 
places. 

Finally,  a  little  data  massaging  is  neces- 
sary. To  make  this  type  of  correlation 
pattern  matching  work,  each  template 
should  have  the  same  statistical  properties. 
Specifically,  each  template  should  have  a 
mean  value  of  zero  and  a  normalized 
standard  deviation.  This  is  easily  done  with 
the  program  in  listing  5.  The  removal  of  the 
mean  is  simplified  by  the  fact  that  the  mean 
for  each  template  is  the  same  (60  intervals 
divided  by  30  regions  gives  a  fixed  mean 
value  of  2).  The  normalization  of  the  stan- 
dard deviation  involves  computing  a  square 


FOR  J  =  1  TO  L 

FOR  I    =   1  TO  30  Subtract  mean 

T  (I,  J)  =  T  (I,  J)-2 

NEXT  I 

S  =  0 

FOR  I  =  1  TO  30 

S  =  S  +  T  (I,  J)  *  T  (I,  J) 

NEXT  I 

S2  =  SQRT  (S) 

FOR  I    =    1  TO  30  formalize 

T  (I,  J)    -   8  *  T  (I,  J)/S2 

NEXT  I 

NEXT  J 


root.  If  the  square  root  function  subroutine 
is  not  available,  then  it  can  be  computed 
manually  with  a  pocket  calculator  and 
entered  by  hand  (PRINT  S  :  INPUT  S2). 
This  is  not  too  painful  since  it  needs  to 
be  done  only  once  for  each  word  in  the 
vocabulary.  S  should  be  a  2  byte  integer, 
and  the  division  by  S2  should  be  done  using 
double  precision  arithmetic. 

The  templates  can  be  saved  and  used 
indefinitely  without  alteration,  but  new 
templates  will  be  necessary  for  different 
speakers.  Composite  templates  can  be 
made  by  averaging  the  reference  patterns 
of  several  talkers,  but  they  do  not  work 
as  well  as  individualized  ones. 

This  very  simple  speech  recognizer  is  only 
one  of  many  systems  that  can  be  adapted  to 
microcomputers.  Much  more  information  on 
the  digital  analysis  and  synthesis  of  speech 
can  be  found  in  the  IEEE  Transactions  on 
Acoustics,  Speech  and  Signal  Processing, 
which  is  available  in  most  engineering 
libraries." 

BIBLIOGRAPHY 

1.  Davis,  Biddulph,  and  Balashek,  "Automatic 
recognition  of  spoken  digits,"  Journal  of  the 
Acoustical  Society  of  America,  volume  24, 
pages  637-642,  November  1952. 

2.  Ross,  "A  limited-vocabulary  adaptive  speech 
recognition  system,"  Journal  of  the  Audio 
Engineering  Society,  volume  15,  pages  414-416, 
October  1967. 

3.  Gilli  and  Meo,  "Sequential  system  for  recog- 
nizing spoken  digits  in  real  time,"  Acustica, 
volume  19,  pages  38^4,  1967. 

4.  Teacher,  Kellett,  and  Focht,  "Experimental, 
limited  vocabulary  speech  recognizer,"  IEEE 
Transactions  on  Audio  and  Electroacoustics, 
volume  AU-15,  pages  127-130,  September  1967. 

5.  Purton,  "Speech  recognition  using  autocorrela- 
tion analysis,"  IEEE  Transactions  on  Audio  and 
Electroacoustics,  volume  AU-1 6,  pages  235-239, 
June  1968. 

6.  Bezdel  and  Bridle,  "Speech  recognition  using 
zero  crossing  measurements  and  sequence  infor- 
mation," Proceedings  of  the  IEEE,  volume  116, 
pages  617-623,  1969. 


Listing  5:  A  normalizing 
routine.  This  auxiliary  rou- 
tine is  used  to  adjust  the 
statistical  properties  of 
the  templates.  Specifically, 
each  template  is  modified 
so  that  it  has  a  zero  mean 
value  and  a  normalized 
standard  deviation.  This 
is  done  to  insure  that  all 
of  the  word  templates 
have  the  same  statisti- 
cal properties  prior  to 
correlation. 


An  Application  for  This 
Speech  Recognition  System 

An  excellent  application 
for  Dr  Boddie's  system  would 
be  to  use  it  as  a  quick  way  to 
enter  hexadecimal  code  with- 
out toggling  or  typing.  The 
vocabulary  required  could  be 
kept  to  a  minimum  if  the 
operator  pronounces  each  digit 
separately  (ie:  "seven,  seven," 
not  "seventy  seven")  so  that 
the  various  compound  forms 
do  not  have  to  be  learned.  The 
computer  would  then  verify 
the  verbal  entry  by  outputting 
the  code  to  a  printer  or  dis- 
play screen.  Better  yet,  use 
this  system  in  conjunction  with 
a  computerized  speech  syn- 
thesizer such  as  D  Lloyd 
Rice's  Computalker  [BYTE, 
August  1976,  page  16}  to 
obtain  a  verbal  interaction. 
A  more  sophisticated  system 
could  process  verbal  op  code 
mnemonics  and  assemble  them 
directly  in  hexadecimal  code 
on  your  display  screen  for 
verification. 


71 


Cassette  tape  and  other  magnetic  tape  recording  without  bit  errors  requires 
that  we  get  our  feet  wet  in  the  murky  waters  of  error  correcting  codes  .  .  . 


How  to  Pick  up  a  Dropped  Bit 


W  Douglas  Maurer 
Rm  634,  University  Library  Bldg 
George  Washington  Univ 
Washington  DC  20052 


The  oxide  coating  of  a 
tape  is  sometimes  uneven- 
ly distributed,  particularly 
when  the  tape  is  old  and 
has  been  used  many  times. 


The  phenomenon  of  the  dropped  bit 
causes  difficulties  in  two  distinct  areas  of 
computer  technology:  in  the  recording  of 
data  on  tape  (or  disk,  or  the  like),  and  in  the 
transmission  of  data  from  one  place  to 
another.  Suppose,  for  example,  that  we  are 
recording  one  hundred  32  bit  words  on  a 
tape.  Out  of  the  3200  bits  that  are  to  be 
written  on  the  tape,  there  is  a  nonzero 
chance  that  at  least  one  of  them  will  be 
wrong.  Either  it  will  be  recorded  as  a  zero, 
when  it  should  have  been  a  one  (a  dropped 
bit)  or  it  will  be  recorded  as  a  one,  when  it 
should  have  been  a  zero  (an  added  bit).  Even 
if  all  3200  bits  are  recorded  correctly,  there 
is  still  a  nonzero  chance  that  the  next  time 
we  read  this  tape,  we  will  read  at  least  one  of 
the  one  bits  from  the  tape  as  if  it  were  a 
zero,  or  one  of  the  zero  bits  as  if  it  were  a 
one.  In  such  a  case  we  again  speak  of 
dropping  a  bit,  or  adding  a  bit.  Often  both 
dropped  and  added  bits  are  referred  to, 
generically,  as  dropped  bits,  and  we  shall 
continue  to  do  so  in  this  paper. 

In  a  similar  way,  suppose  we  are  trans- 
mitting a  message  which  consists  of  bits. 
(The  message  does  not  have  to  involve  com- 
puters at  all;  it  may,  for  example,  simply  be 
a  message  from  one  Teletype  to  another.)  In 
a  long  message  there  is,  again,  a  very  good 
chance  that  at  least  one  bit  which  is  trans- 
mitted will  be  received  in  the  wrong  way.  It 
might  be  received  as  a  zero,  when  it  is 
supposed  to  be  a  one,  or  vice  versa.  Again  we 
speak  of  bits  being  dropped  in  transmission. 
(One  slightly  confusing  piece  of  terminology 
here  is  that  the  entire  collection  of  bits,  out 
of  which   a  very  few  are  dropped,   is  very 


often  referred  to  as  a  "message,"  even  when 
we  are  not  transmitting  it,  but  rather  record- 
ing it  on  tape  or  disk.) 

There  are  many  possible  sources  of 
dropped  bits.  Tapes  often  have  tiny  dust 
particles  on  them  which  interfere  with  the 
reading  and  writing  of  data.  The  oxide 
coating  of  a  tape  is  sometimes  unevenly 
distributed,  particularly  when  the  tape  is  old 
and  has  been  used  many  times.  The  same 
considerations,  of  course,  apply  to  floppy 
disk  memory,  or  any  other  kind  of  memory 
involving  an  oxide  coating.  In  transmitting 
messages  from  one  place  to  another,  noise  in 
the  channel  and  receiver  can  very  easily 
degrade  the  quality  of  the  reception. 

In  order  to  solve  the  problems  created  by 
dropped  bits,  we  can  proceed  in  two  general 
classes  of  ways.  The  first  is  to  improve  our 
hardware  in  such  a  way  that  dropped  bits  do 
not  occur:  We  can  clean  our  tapes.  We  can 
throw  away  our  old  tapes.  We  can  transmit 
messages  at  a  slow  rate,  and  so  on.  The  other 
approach  is  what  may  be  called  "picking  up" 
the  dropped  bits.  The  idea  is  to  send  a 
message  that  is  longer  than  the  original  one, 
and  that  is  so  designed  that,  even  if  certain 
bits  are  dropped,  the  original  message  can  be 
recovered.  (As  we  mentioned  above,  the 
word  "message"  is  being  used  here  in  a 
general  sense;  it  may,  in  particular,  be  a 
record  written  on  tape  or  disk.) 

Picking  up  a  dropped  bit  is  referred  to, 
more  precisely,  as  "error  correction,"  a  term 
which  must  be  carefully  distinguished  from 
"error  detection."  In  error  detection,  we 
simply  detect  the  fact  that  some  bit  has  been 
dropped;   we    cannot   tell   which   bit  is  the 


72 


<r Har 

ity 

bn 

:s  (c 

:oli 

imr 

1) 

\ 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o  • 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o  • 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o  • 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o  * 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o  • 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o  • 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o  • 

•° 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o 

o  • 

^- Message  1 

sits 

Parity 

bits  (row) 

J 

wrong  one.  If  we  could  tell  that,  then  we 
could  correct  the  error,  because  if  a  bit  is 
"one,"  and  it  is  wrong,  then  it  must  really  be 
"zero,"  and  vice  versa.  Knowing  which  bit  is 
wrong  is  what  enables  us  to  do  error 
correction. 

Both  error  detection  and  error  correction 
are  affected  by  the  question  of  how  many 
bits  in  a  message  are  wrong.  If  we  can 
tell  which  bit  is  wrong,  assuming  that  there 
is  only  one  wrong  bit,  then  we  have  single 
error  correction  —  even  though  we  might 
not  be  able  to  correct  more  than  one  error 
in  a  message  (or  we  might  correct  these 
errors  in  the  wrong  way).  In  the  same  way, 
if  we  can  tell,  for  example,  that  something 
is  wrong  whenever  one  or  two  (but  no  more 
than  two)  bits  in  a  message  are  wrong,  then 
we  have  double  error  detection,  even  though 
there  might  be  some  patterns  of  more  than 
two  wrong  bits  which  are  such  that  we  can- 
not tell  that  anything  is  wrong. 

A  simple  way  to  perform  error  detection 
is  by  means  of  what  is  commonly  called 
parity  checking.  In  large  systems,  8  bit  bytes 
recorded  on  an  IBM  standard  tape  are  always 
accompanied  by  a  ninth  bit,  the  parity  bit. 
This  bit  is  so  chosen  that  the  total  number 
of  one  bits  among  the  nine  bits  (the  original 
eight,  plus  the  parity  bit)  is  an  odd  number 
(1,  3,  5,  7  or  9).  (Sometimes  it  is  done  the 
other  way  around,  that  is,  to  give  even 
parity  instead  of  odd  parity;  but  we  shall 
ignore  this  alternative  for  the  moment.)  Now 
let  us  suppose  that  no  more  than  one  of 
these  nine  bits  has  been  dropped.  When  the 
bits  are  read  again,  if  the  total  number  of 
one  bits  is  an  even  number,  we  know  that 
there  has  been  a  dropped  bit.  We  do  not 
know,  however,  which  of  the  eight  bits  was 
dropped.  (Actually,  for  all  we  know,  it 
might  be  the  ninth  bit  -  the  parity  bit  itself 
—  that  was  dropped.) 

Parity  checking  is  extended,  on  IBM 
standard  tapes,  to  provide  for  the  possibility 
of  error  correction  as  well  as  error  detection. 
This  is  done  by  performing  "two- 
dimensional"  parity  checking,  as  shown  in 
figure  1.  Each  column  has  a  parity  bit,  and 


each  row  also  has  a  parity  bit.  Now  suppose 
that  exactly  one  of  the  bits  in  the  message  of 
figure  1  was  dropped.  If  that  bit  was  in  (say) 
the  fifteenth  column  and  the  second  row, 
then  the  parity  in  the  fifteenth  column  will 
be  wrong  —  there  will  be  an  even  number  of 
one  bits  in  it,  rather  than  an  odd  number  — 
and  the  parity  in  the  second  row  will  also  be 
wrong.  If  these  two  parities  are  wrong,  it  is 
then  a  simple  matter  to  find  the  bit  in  the 
fifteenth  column  and  the  second  row  and 
change  it  (from  a  zero  to  a  one  or  from  a 
one  to  a  zero). 

The  assumption  that  is  made  in  this 
parity  scheme  is  that  dropped  bits  will  be 
infrequent  enough  that,  in  a  message  (or  a 
record  on  tape)  of  this  size,  only  one  bit,  at 
the  most,  will  be  dropped.  For  this  reason 
the  two-dimensional  parity  checking  scheme 
of  figure  I  is  said  to  provide  single  error 
correction,  but  not  double  error  correction. 
Suppose  that  the  bit  in  the  seventeenth 
column  and  the  first  row  is  also  dropped. 
This  means  that  the  fifteenth  column,  the 
seventeenth  column,  the  first  row  and  the 
second  row  will  all  have  wrong  parity.  In  this 
case,  which  two  bits  are  wrong?  Let  us 
denote  by  (x,  y)  the  bit  in  column  number  x 
and  row  number  y.  In  this  case,  it  is  bits  (1 5, 
2)  and  (17,  1)  that  were  dropped.  But  it 
could  just  as  easily  have  been  bits  (15,  1) 
and  (17,  2),  and  exactly  the  same  erroneous 
behavior  would  have  occurred.  In  other 
words,  we  can't  tell,  when  there  is  a  double 
error,  where  the  double  error  is  if  this 
scheme  is  used,  and  thus,  we  have  no  way  of 
correcting  it. 

The  two-dimensional  parity  checking 
scheme  does,  however,  provide  double  error 
detection.  Whenever  there  is  a  double  error, 
that  is,  whenever  exactly  two  bits  in  the 
message  are  dropped,  we  can  detect  this  fact. 
This  is  true  even  when  both  errors  are  in  the 
same  column.  Of  course,  in  that  case,  there 
will  be  no  way  to  tell  what  column  the 
errors  are  in.  All  of  the  column  parities  will 
be  right,  because  an  odd  number  of  bits  with 
two  changes  in  it  remains  an  odd  number  of 
bits.  The  only  way  we  can  tell  that  some- 


Figure  1:  A  block  of  data, 
eight  bits  plus  parity  in 
height,  32  bits  plus  parity 
in  width,  used  as  an  ex- 
ample in  the  text.  This 
layout  of  bytes  might  be 
thought  of  as  a  block  of 
data  on  a  standard  9  track 
tape  drive;  or  it  might  be 
an  internal  memory  image 
of  data  sent  and  received 
through  a  serial  data  port, 
bit  by  bit,  as  in  the  per- 
sonal computer's  audio 
tape  interfaces. 


Both  error  detection  and 

error  correction  are 

affected  by  the  question 

of  how  many  bits  in  a 

message  are  wrong. 


73 


Standard  parity  checking 
schemes  of  this  kind  can 
be  improved  upon  in  two 
ways:  The  first  is  by  in- 
creasing their  efficiency; 
the  second  is  by  increas- 
ing the  number  of  errors 
that  can  be  corrected. 


Suppose  that  there  are 
no  errors  at  all  in  a  given 
256  bits. 


thing  is  wrong,  in  this  case,  is  that  exactly 
two  of  the  row  parities  are  wrong.  The  same 
thing  is  true  in  reverse,  if  the  two  dropped 
bits  are  in  the  same  row,  but  not  in  the  same 
column. 

In  fact,  this  scheme  will  not  only  detect 
all  double  errors,  it  will  detect  almost  all 
multiple  bit  errors.  If  there  are  more  than 
two  dropped  bits,  as  long  as  these  are 
randomly  distributed  (and  not  caused  by  a 
scratch  on  a  tape,  for  example),  then  the 
probability  is  overwhelming  that  all  of  them, 
or  at  least  most  of  them,  will  be  in  different 
columns,  and  thus  there  will  be  quite  a  num- 
ber of  column  parities  that  will  be  wrong.  We 
cannot  refer  to  the  given  scheme  as  a 
multiple  error  detection  scheme,  in  general, 
because  there  are  some  cases  in  which  errors 
go  completely  undetected.  For  example, 
consider  the  four  bits  we  treated  earlier, 
namely  bits  (15,2),  (17,  I),  (15,  1),and  (17, 
2).  Suppose  that  these  four  bits  are  all 
dropped,  and  that  no  other  bits  are  dropped. 
Now  we  have  an  undetectable  error:  All  our 
parities,  including  those  in  the  fifteenth  and 
seventeenth  columns  and  in  the  first  and 
second  rows,  will  be  right.  But  this  is  so 
infrequent  an  occurrence  that  it  may,  for  all 
practical  purposes,  be  ignored. 

Standard  parity  checking  schemes  of  this 
kind  can  be  improved  upon  in  two  ways: 
The  first  is  by  increasing  their  efficiency;  the 
second  is  by  increasing  the  number  of  errors 
that  can  be  corrected.  We  shall  treat  these 
points  one  at  a  time. 

Suppose  that  the  record  in  figure  1 
contained  eight  rows  and  32  columns,  for  a 
total  of  256  bits.  If  we  include  the  check 
bits  there  are  nine  rows  and  33  columns. 
This  means  that  there  are  9+33  =  42  dif- 
ferent check  bits.  (The  row  of  check  bits  has 
to  have  a  check  bit  of  its  own,  of  course,  and 
so  does  the  column  of  check  bits.  Sometimes 
these  are  the  same,  but  even  if  they  are, 
there  are  still  41  check  bits.)  In  contrast,  we 
will  now  exhibit  a  clever  scheme  that  re- 
quires only  eight  check  bits.  It  performs 
single  error  correction,  just  as  does  the 
scheme  of  figure  1.  It  has,  however,  certain 
disadvantages  which  we  will  discuss  later. 

The  scheme  is  as  follows.  We  number  the 
bits  in  our  message  from  0  to  255.  The  last 
of  the  eight  check  bits  will  be  a  parity  bit  for 
half  of  the  bits  in  the  message,  namely  the 
bits  numbered  1,  3,  5  and  so  on  up  to  255. 
Note  that  these  are  the  bits  such  that  the  bit 
number  (1,  3,  5  and  so  on),  when  it  is  itself 
expressed  in  binary,  as  an  8  bit  quantity,  has 
a  one  bit  in  the  last  position  (indicating  that 
it  is  an  odd  number). 

The  next  to  last  of  the  eight  check  bits 
will  again  be  a  parity  bit  for  half  the  bits  in 
the  message.  This  time,  however,  it  will  be 


for  the  bits  numbered  2,  3,  6,  7,  10,  11  and 
so  on,  up  to  254  and  255.  These  bit  numbers 
are  all  such  that,  if  they  are  themselves 
expressed  in  binary,  as  8  bit  quantities,  then 
the  next  to  last  bit  of  each  of  these  8  bit 
quantities  will  be  a  one  bit. 

The  general  scheme  should  now  be 
apparent.  Each  of  the  eight  check  bits  is  a 
parity  bit  for  half  the  bits  in  the  original 
message.  For  1  <  k  <  8,  the  k-th  check  bit  is 
a  parity  bit  for  all  the  bits  that  have  the 
following  property:  If  the  bit  number  is  N, 
and  if  N  is  expressed  as  an  8  bit  binary 
quantity,  then  the  k-th  bit  of  this  quantity  is 
a  one  bit.  In  particular,  the  first  of  the  eight 
check  bits  is  a  parity  bit  for  bits  128,  129, 
130  and  so  on,  up  to  255,  of  the  original 
message. 

Suppose  now  that  one  of  our  bits  is 
dropped.  For  definiteness,  let  us  suppose 
that  it  is  the  99th  bit.  We  express  the 
number  99  as  an  8  bit  binary  quantity: 
01 1 0001 1 .  And  now  let  us  look  at  our  eight 
check  bits.  Which  ones  of  them  are  going  to 
be  wrong?  The  last  one  will  be  wrong, 
because  99  is  an  odd  number,  and  therefore 
the  99th  bit  (which  was  dropped)  is  one  of 
the  128  bits  (half  of  the  original  256)  of 
which  the  parity  was  taken  to  form  this  last 
check  bit.  The  next  to  last  check  bit  will  also 
be  wrong,  because  99  has  the  property  that 
the  second  bit  from  the  right  in  its  binary 
representation  is  a  one  bit.  The  first  check 
bit,  though,  will  still  be  right,  because  this 
represents  parity  on  the  128th,  129th, 
130th,  etc,  bits,  and  none  of  these  bits  were 
dropped. 

The  general  pattern  should  now  be 
apparent.  If  we  look  at  the  eight  check  bits 
from  left  to  right,  and  if  we  write  a  zero  for 
each  parity  check  that  was  right,  and  a  one 
for  each  parity  check  that  was  wrong,  we 
obtain  the  pattern  01 1 0001 1 .  This  is  exactly 
the  number  99  expressed  in  binary.  And  this 
means  that  we  can  tell  that  it  was,  in  fact, 
the  99th  bit  that  was  dropped  —  which,  in 
turn,  means  that  we  can  correct  the  error. 
Thus  we  have  a  single  error  correction 
scheme,  just  as  before,  enabling  us  to  pick 
up  one  dropped  bit. 

There  are  three  problems  with  this 
scheme.  The  first  is  as  follows.  Suppose  that 
there  are  no  errors  at  all  in  a  given  256  bits. 
Then,  of  course,  all  the  check  bits  will  be 
right,  and  we  will  obtain  the  pattern 
00000000.  But  this  pattern  tells  us  that  bit 
number  0  is  wrong!  In  fact,  none  of  our 
check  bits  involve  parity  on  bit  number  0  at 
all,  and  thus  we  have  no  way  of  telling 
whether  this  bit  was  dropped  or  not.  This 
problem,  however,  can  be  solved  rather 
simply.  We  transmit  only  255  bits  of  data, 
instead  of  256,  and  these  are  numbered  from 


74 


I  to  255.  The  efficiency  of  the  scheme  is  not 
too  badly  affected;  we  now  have  eight  check 
bits  for  every  255  data  bits,  rather  than  eight 
for  every  256. 

The  second  problem  with  the  scheme  is 
that  we  have  not  considered  the  possibility 
that  one  of  the  check  bits  might  be  wrong. 
Suppose  that  the  last  check  bit  is  wrong,  and 
that  all  the  other  bits  are  right.  Then  using 
the  scheme  above,  we  would  obtain  the  8  bit 
pattern  00000001,  and  this  would  tell  us 
that  it  was  bit  number  1  of  the  original  256 
that  was  wrong.  In  general,  an  error  in  any 
of  the  bits  numbered  1 ,  2,  4,  8,  1 6,  32,  64  or 
128  can  be  confused  with  an  error  in  one  of 
the  check  bits.  The  solution,  however,  is 
again  very  simple:  We  just  leave  these  bits 
out.  We  are  now  transmitting  only  255-8  = 
247  bits  of  data,  with  eight  check  bits,  and 
again  the  efficiency  is  not  too  badly  af- 
fected. If  the  8  bit  pattern  we  obtain 
contains  seven  0  bits,  and  only  one  1  bit, 
then  we  know  that  it  is  a  check  bit  that  is 
wrong. 

The  third  problem,  however,  is  more 
serious.  Suppose  that  more  than  one  bit  out 
of  the  256  was  dropped.  Note  that  in  our 
scheme,  if  there  is  an  error  of  any  kind,  we 
determine  one  particular  bit  position  to 
change.  In  other  words,  we  always  assume 
that  if  there  is  an  error,  it  is  a  single  error.  If 
there  is  a  multiple  error  we  are  always  going 
to  do  the  wrong  thing.  This  is  in  contrast 
with  the  two-dimensional  parity  checking 
scheme,  in  which  we  almost  always  know 
that  something  is  wrong,  no  matter  how 
many  bits  get  dropped.  The  only  solution  to 
this  problem  is  a  partial  one:  We  can  forget 
about  correcting  errors  and  use  this  scheme 
to  detect  errors  only;  and  if  we  do  this,  all 
double  errors  will  be  detected.  In  other 
words,  this  scheme  can  be  used  for  single 
error  correction  or  double  error  detection, 
but  not  both. 

A  remarkable  property  of  our  scheme  is 
that  the  eight  check  bits  can  all  be  generated 
simultaneously.  We  take  the  exclusive  OR  of 
all  the  binary  integers  00000001  thru 
11111111  (or  1  thru  255  in  decimal)  - 
leaving  out  1,  2,  4,8,  16,32,  64  and  128,  as 
noted  above  —  which  correspond  to  one  bits 
in  the  message.  That  is,  if  the  i-th  bit  in  the 
message  is  a  one  bit,  then  the  integer  i, 
written  in  binary,  is  exclusive  ORed  with  all 
other  integers  i  with  the  same  property.  The 
resulting  8  bit  quantity  consists  of  pre- 
cisely the  eight  check  bits  we  need.  For  1 
<  k  <  8,  the  k-th  bit  of  this  quantity  is  the 
exclusive  OR  of  as  many  one  bits  as  there 
are  positions  i  in  the  message,  such  that  bit  i 
is  a  one  bit  and  the  k-th  bit  of  the  integer  i  is 
also  a  one  bit,  together  with  a  number  of 
zero  bits,  which  do  not  affect  the  exclusive 


OR.  An  algorithm  for  performing  this  proc- 
ess is  as  follows: 

1 .  Initialize  so  as  to  point  to  the  first  bit 
of  the  message. 

2.  Set  R1  =  3.  (R1  will  contain  the  index 
i  as  above.) 

3.  Set  R2  =  0.  (R2  will  contain  the  eight 
check  bits.) 

4.  Set  R3  =  4.  (R3  will  be  4,  8,  16,  32, 
etc,  as  above.) 

5.  If  the  current  bit  in  the  message  is  a 
zero  bit,  skip  the  next  step  (that  is, 
go  to  step  7). 

6.  Set  R2  equal  to  the  exclusive  OR  of 
R2and  R1. 

7.  Point  to  the  next  bit  of  the  message. 

8.  Set  Rl  =  R1  +  1. 

9.  If  R1  =£  R3  then  go  to  step  5. 

10.  Set  R3=  R3+  R3. 

11.  If  R3^512  then  go  to  step  7. 

At  this  point,  if  we  are  writing  a  message, 
we  append  the  eight  check  bits  in  R2  on  to 
the  end  of  the  message.  If  we  are  reading  a 
message,  we.  read  the  next  eight  bits  and 
form  the  exclusive  OR  of  these  bits  with  R2. 
If  the  result  is  zero,  the  message  is  without 
error.  If  it  is  1,  2,  4,  8,  16,  32,  64  or  128, 
then  one  of  the  check  bits  is  wrong.  If  it  is 
anything  else  —  call  it  i  —  then  the  i-th  bit  is 
wrong,  and  must  be  changed  (to  a  zero  if  it 
is  a  one,  or  vice  versa). 

It  should  also  be  clear  that  there  is  a 
scheme  like  this  for  any  number  m  of  check 
bits.  We  have  here  taken  m  =  8,  and  the 
number  of  data  bits  is  2m-m-1  =  256-8- 

I  =  247;  but  we  could  have  taken  m  =  4,  for 
example,  obtaining  four  check  bits  for  each 

II  bits  of  data.  This  provides  another 
approach  to  the  problem  of  multiple  errors 
in  256  bits;  we  can  require  only  that  there 
be  no  multiple  errors  in  11  bits  (say),  at  the 
cost  of  a  certain  loss  of  efficiency. 

Is  it  possible  to  pick  up  more  than  one 
dropped  bit  at  a  time?  That  is,  can  we  devise 
a  scheme  that  is  capable  of  double  error 
correction?  Yes,  we  can;  we  can  even  provide 
n-tuple  error  correction,  for  any  (fixed) 
positive  integer  n.  Schemes  for  doing  this, 
however,  are  quite  complex,  and  their  com- 
plexity increases  with  the  number  of  errors 
to  be  corrected.  There  is  a  whole  subfield  of 
electrical  engineering  called  the  theory  of 
error  correcting  codes,  which  concerns  itself 
with  schemes  of  this  kind.  It  is  remarkable 
that  error  correcting  codes  involve  one  of 
the  few  known  practical  applications  of  the 
theory  of  Galois  fields.  (Every  mathematician 
knows  the  tragic  story  of  Galois,  a  French 
math  student  back  in  the  Age  of  Dueling 
who  got  involved  in  a  challenge  to  a  duel, 
and,  knowing  his  opponent  was  a  far  better 
duelist  than  he,  spent  his  last  night  on  earth 


Suppose  that  more  than 

one  bit  out  of  the  256  was 

dropped. 


Is  it  possible  to  pick  up 

more  than  one  dropped  bit 

at  a  time? 


75 


A  fundamental  concept  in 
all  error  correcting  code  is 
"Hamming  distance." 


feverishly  writing  down  all  the  mathematics 
he  could.  He  died  at  21 ,  a  monument  to  the 
stupidity  of  taking  politics  too  seriously.) 

A  fundamental  concept  in  all  error  cor- 
recting codes  is  "Hamming  distance." 
Consider  two  code  words  C-j  and  C2;  each 
code  word  consists  of  a  message  (data  bits) 
together  with  the  check  bits  for  that  mes- 
sage. Take  the  exclusive  OR  of  C]  and  C2; 
the  number  of  one  bits  in  the  result  is  called 
the  Hamming  distance  between  Ct  and  C2. 
If  the  Hamming  distance  is  I,  this  means 
that  C^  and  C2  are  the  same,  except  for  one 
bit  position  at  which  they  are  different.  This 
in  turn  means  that  if  it  was  that  particular 
bit  which  was  dropped,  then  C-|  will  get 
mistaken  for  C2,  or  vice  versa. 

On  the  other  hand,  suppose  that  a  par- 
ticular code  has  the  property  that  for  every 
pair  of  code  words  C\  and  C2,  the  Hamming 
distance  is  3  or  more.  Now  suppose  that  Ci 
is  a  code  word  and  C2  is  not.  Suppose  that 
when  a  message  is  transmitted,  then,  due  to 
some  bit  being  dropped,  it  is  C2  that  is 
received  when  it  should  have  been  C^.  That 
is,  the  distance  between  Ci  and  C2  is  1 
(since  only  one  bit  was  dropped).  In  this 
case  the  error  can  always  be  corrected.  That 
is,  of  all  possible  code  words,  we  can  always 
tell  that  C^   is  the  one  we  wanted.  To  prove 


this,  suppose  that  there  were  another  code 
word,  C3,  that  is  actually  the  one  we 
wanted.  Then  the  distance  between  C3  and 
C2  would  be  I  (since  we  are  assuming  that 
only  one  bit  is  dropped),  and  we  already 
know  that  the  distance  between  Ci  and  C2 
is  1.  But  in  this  case  the  distance  between 
the  two  code  words  Ci  and  C3  cannot  be 
greater  than  2,  and  this  contradicts  our 
assumption  that  two  code  words  must  have  a 
distance  between  them  of  3  or  more. 

In  general,  if  the  minimum  Hamming 
distance  between  any  two  code  words  is  3, 
the  code  is  a  single  error  correcting  code 
(although  the  actual  correcting  of  the  errors 
might,  in  some  cases,  be  an  elaborate  and 
inefficient  process).  We  can  extend  this 
immediately  and  say  that,  if  the  minimum 
distance  is  d  =  2e+1,  the  code  is  an  e-tuple 
error  correcting  code  (usually  referred  to 
as  an  e-error  correcting  code),  for  any 
integer  e.  This  code  will  not  detect  any  more 
than  e  errors,  unless  we  sacrifice  some  error 
correction  capability.  If  x  and  y  arc  integers 
with  x  >  y  and  x+y+1  =  d,  then  we  can  use  a 
code  with  minimum  distance  d,  as  above,  to 
correct  any  y  errors  and  simultaneously 
detect  any  x  errors.  As  a  special  case  of  this, 
if  y  =  0,  we  can  detect  any  d-1  errors  with- 
out any  error  correction  capability  at  all." 


IN  WIRE-  WRAPPING  (og)  HAS  THE  LINE. . 

HOBBY-WRAP-30  wire-wrapping,  stripping,  unwrapping  tool  for  awg  30  (.025  square  post) 


STRIP 


WRAP 


UNWRAP 


OK  MACHINE  &  TOOL  CORPORATION 

3465  CONNER  STREET.  BRONX,  NEW  YORK.  NY.  10478  U.S.A.  ■  PHONE  (212)  8844600 
TELEX:  125091  TELEX:  232395 


Circle  20  on  inquiry  card. 


76 


Memories 
are  made  of  this. 


'  /E  g~}  c  jc 


44«\-UY«\»\^ 


"*w 


■  ill'.^Kltf 


IlffllffllllllllllllllllllllMtllltl 


BHHH 


32K.  One  Card.  One  low  price. 
Only  from  the  Digital  Group. 


Now,  on  only  one  fully  static  card,  the  Digital  Group  has 
squeezed  in  a  whopping  32K  of  memory.  Which,  with  a  little 
quick  addition,  means  a  full  64K  architecture  now  requires 
only  2  boards  instead  of  8.  That's  a  4-to-l  space  reduction 
...and  leaves  one  extra  memory  slot  on  the  Digital  Group's 
standard  motherboard  still  available  for  future  products. 

All  this  and  one  low  price,  too. 

It  just  may  be  the  best  news  of  all.  Our  full  static,  assembled 
and  tested  32K  memory  board  is  only  $995.  Now  that's  worth 
remembering.  It's  substantially  less  than  our  equivalent  as- 
sembled 8K  board  prices.  (Please  note:  We're  initially  offer- 
ing this  32K  board  assembled  only,  but  kit  versions  will  soon 
be  available,  too — at  even  lower  prices.) 

Here's  what  you  get. 

Specifications: 

•  32K  on  single  card 

•  Speed — 450ns.  All  of  our  current  CPUs  will  operate  at 
full-rated  speed. 

•  Decoding — Lower  or  upper  32K  bank 

•  Power — +5V  only  (a   4A 

•  Card  size — 12"  x  5"  (excluding  connector  fingers) 

Features: 

•  May  be  intermixed  on  Digital  Group  systems  with  our 
8K  memory  cards 

Circle  21 


All  data  and  address  lines  are  buffered 
Fully  static  memories — EMM  4801  (450ns)  or  equiva- 
lent 


Price: 

32K  board  complete,  assembled  and  tested 


$995.00 


For  all  the  memorable  details,  just  fill  out  the  coupon  below. 
(Then  all  you  have  to  remember  is  to  mail  it  in.) 


mailing 

ffe(%[MI 

DGWg)              ) 

P.O.  Box  6528 

Denver,  Colorado  80206 

□   I  promise  to  mail  this  in 

Name 

(303)  777-7133 
so  add  me  to  your 

list! 

Addrpss 

CitylStatp/Zip 

□   Remember  me?  I'm  already  on  your  mailing  list,  but  I  need  the 
memory  spec  sheet  desperately, 
on  inquiry  card. 


Figure  1 :  Conceptually,  it's  easy  to  expand 
the  effective  memory  space  of  a  processor 
by  adding  a  latched  output  port  which  pro- 
vides extra  high  order  bits  of  addressing.  The 
result  is  a  "paged"  memory  technique  which 
can  address  a  much  larger  memory  address 
space.  In  this  example,  four  bits  added  to 
16  bits  yields  20  address  bits,  giving  a  micro- 
processor an  effective  addressing  range  of 
1048576  locations.  However,  there  are  dis- 
advantages of  such  a  technique  in  this  simple 
conception:  Each  64  K  region  is  completely 
isolated  from  its  neighbors,  since  the  10  port 
technique  requires  software  switching 
between  regions,  which  cannot  in  general  be 
accomplished  within  one  or  a  small  number 
of  instructions. 


Give  Your  Micro  a  Megabyte 


What  is  it  that  makes  a  microcomputer 
"micro?"  There  are  many  factors  involved, 
but  one  of  the  most  crucial  is  the  small 
memory  available  in  most  hobby  computers. 
I  had  scarcely  gotten  my  Altaic  up  and 
running  with  8  K  of  memory  before  I  wanted 
to  write  programs  that  exceeded  its  storage 
capabilities.  Paging  programs  in  and  out 
from  dual  cassettes  became  a  major  nuisance, 
so  I  gathered  my  pennies  and  bought  an- 
other 4  K  memory  board.  In  less  than  a 
month  I  needed  even  more  storage.  It  is  a 
fact  of  programming  life  that  one  must 
trade  storage  space  for  execution  speed  in 
programs.  1  tried  to  write  a  program  in 
BASIC  to  play  Mastermind  on  my  Altair. 
Mastermind  has  1296  possible  moves,  each 
move  composed  of  four  numbers.  Storing 
this  optimally  would  require  about  5  K 
bytes;  the  BASIC  code  took  nearly  6  K 
bytes,  leaving  me  almost  no  space  for  my 
program.  I  tried  to  write  the  program  to 
regenerate  the  moves  each  turn.  This  saved 
the  space,  but  it  took  over  ten  minutes  of 
computation  to  respond.  Few  human  play- 
ers can  put  up  with  such  a  wait.  Don't 
think  that  this  lack  of  memory  afflicts 
only  small  machines.  I  work  on  several 
large  computers,  each  of  which  has  over 
100  K  bytes  of  storage.  Programs  have  been 
written    on    each    system    which    strain    the 


memory  limits.  The  unwritten  law  has  it 
that  "programs  expand  to  fill  all  available 
space."  We  programming  experimenters 
don't  have  much  control  over  the  structure 
of  our  processor  architectures,  but  we  do 
build  up  our  own  memory  systems.  In  all 
systems  that  I  have  worked  on,  the  memory 
was  the  single  most  expensive  component. 
Peripherals  rank  second  in  most  systems. 
This  is  the  area  in  which  we  can  upgrade 
our  machines  most  readily  from  the  "micro" 
class.  This  article  will  describe,  in  a  general 
way,  two  methods  for  expanding  the  storage 
capability  of  a  computer.  These  methods  are 
widely  used  in  big  machines,  but  are  rarely 
built  into  small  machines.  This  need  not  be 
the  case. 

Present  day  8  bit  microprocessors  typically 
have  1 6  bit  address  buses.  This  implies  that  a 
maximum  of  64  K  bytes  can  be  directly  ad- 
dressed. Many  minicomputers  also  have 
16  bit  buses,  but  often  address  up  to  a 
megabyte.  How  do  they  accomplish  this 
apparent  bit  of  magic?  Obviously,  they  must 
come  up  with  some  more  address  bits  some- 
where. Minicomputers  do  it  by  using  special 
registers  called  mapping  registers.  These 
registers  contain  the  extra  address  bits.  If  the 
mapping  register  contents  are  fixed,  then 
only  64  K  can  be  addressed.  But  by  dynamic- 
ally   changing   the   bits  of  (for  example)   a 


78 


L_. 


LATCHED 

4   BIT  OUTPUT  PORT 

PROCESSOR 

1 
4 

1 

16 

t 

ADDRESS    BUFFERS 

DATA 

BUS 

BUFFER 

20  BIT  EFFECTIVE 
SYSTEM  ADDRESS 
BUS 


8  BIT 

SYSTEM 
DATA   BUS 


Robert  D  Grappel 
148  Wood  St 
Lexington  MA  02173 


4  bit  mapping  register,  the  processor  can 
effectively  address  an  entire  megabyte.  In 
minicomputers,  the  mapping  function  is 
usually  performed  automatically,  when 
needed,  by  operating  system  software.  Each 
task  loaded  in  the  system  has  access  to  64  K, 
as  determined  by  its  mapping  register. 
Homebrewed  microprocessors  can  do  this, 
too,  as  well  as  commercial  systems  with 
appropriate  modifications.  We  need  to  add 
a  register  for  mapping.  We  can't  add  the 
needed  bits  to  the  processor  itself,  but  we 
can  use  peripheral  registers  as  we  like.  Just 
treat  the  mapping  register  as  an  output 
device.  Figure  1  shows  how  an  8  bit  micro- 
processor with  16  address  bits  can  generate 
an  effective  20  bit  address  space  using  a 
4  bit  output  port  as  a  mapping  register.  A 
multitasking  operating  system  could  be 
written  to  switch  up  to  16  tasks,  each  of 
which  has  access  to  64  K.  With  such  systems, 
64  K  segments  of  data  could  be  kept  in 
partitions  (64  K  space  defined  by  the  map 
register),  separate  from  the  programs  in 
which  they  are  used.  The  opportunities  for 
innovative  system  design  are  vast.  As  men- 
tioned, the  more  memory  a  system  has,  the 
more  complex  its  programs  become. 

"Wait  a  minute!",  you  are  asking.  "We 
were  talking  about  microcomputers  with 
typically  4  to  16  K.  What  good  is  extending 


the  address  space  without  the  memory?  Who 
could  afford  to  build  amegabyteof  storage?" 
Good  questions.  The  answer  is  the  second 
trick  used  by  big  systems  ...  it  is  called 
"virtual  memory."  This  is  quite  a  sleight  of 
hand  technique.  Basically,  it  amounts  to 
this:  If  you  can't  have  memory  at  the  ad- 
dress, move  the  address  to  the  memory  you 
have.  Nobody  expects  a  system  to  actually 
have  a  megabyte  of  on  line  storage.  That  is 
too  expensive  for  all  but  the  biggest  ma- 
chines. Disk  (or  tape)  is  also  a  storage 
medium.  It  is  slower,  but  a  heck  of  a  lot 
cheaper  for  large  volumes  of  data.  Suppose 
that  some  external  storage  device  holds  a 
lot  of  data  blocked  into  4  K  chunks.  When- 
ever the  processor  asks  for  data,  the  chunk 
that  contains  that  data  is  read  into  a  4  K 
memory  from  which  the  processor  gets  it. 
This  is  the  essence  of  virtual  memory:  a 
small  but  fast  memory  which  is  being  filled 
by  a  large  but  slow  external  store.  To  the 
program  it  appears  that  its  entire  address 
space  is  filled  with  active  memory;  it  just 
has  to  wait  sometimes.  Since  most  programs 
move  more  or  less  sequentially  through 
memory,  many  memory  accesses  are  often 
made  to  the  same  chunk  of  memory.  These 
accesses  arc  as  fast  as  the  real  memory  can 
be.  The  system  can  have  several  chunks 
active  at  the  same  time.  This,  again,  is  the 


79 


+  5V 


FROM 
PAGE 
SELECT 

REGISTER 


LSB 

o 
o 

O 

MSB 


PS3 


■  IK 


■  INSERT  ADDITIONAL   7485  IF  NEEDED 
FOR  LOW  ORDER  COMPARISONS 


ILT     IEO     IGT 
INPUTS 

7485 

AO  BO 


Al 
A2 


Bl 

B2 


A3  B3 

COMPARATOR 

OUTPUTS 
OLT    0E0     OGT 


+  5V  POWER  PIN  16 
GND  PIN  8 


LSB 

MSB 


FROM 
)  ADDRESS 
BUS 


1=  ADDRESS  IN  SELECTED  PAGE 


-o 


O-ADDRESS  NOT  IN   SELECTED  PAGE 
(START  PAGE  FAULT  RECOVERY) 


trade-off  of  memory  space  for  execution 
speed. 

The  rest  of  this  article  outlines  a  virtual 
memory  system  for  a  typical  microprocessor. 
It  will  work  with  most  popular  processors. 
The  one  requirement  is  a  READY  or  WAIT 
capability  that  will  halt  the  processor  at  any 
point  in  an  instruction  upon  an  external 
signal.  This  is  absolutely  necessary  to  halt 
the  processor  until  the  desired  chunk  (or 
more  properly  "page")  of  memory  has  been 
loaded.  The  8080,  6502,  Z-80,  TMS9900 
and  other  processors  have  this  feature.  The 
6800,  unfortunately,  does  not. 

We  will  assume  a  page  size  of  4  K  bytes. 
This  means  that  the  low  order  1  2  bits  of  the 
address  bus  wiil  address  the  memory  page. 
We  will  assume  a  single  4  K  page  of  real 
memory  for  simplicity.  Two  processors  need 
access  to  this  memory.  The  main  processor 
uses  it,  but  there  must  also  be  another 
processor  which  can  access  the  memory  page 
to  move  the  data  into  and  out  of  it.  Thus, 
both  the  address  and  data  buses  must  have 
switches  to  permit  either  processor  access  to 
the  memory.  Now,  we  need  to  know  if  a 
given  address  lies  in  the  current  memory 
page.  The  paging  processor  uses  an  output 
port  as  a  page  address  register.  This  register 
is  compared  with  the  upper  bits  of  the  ad- 
dress from  the  main  processor.  A  circuit  for 
such  a  page  select  logic  is  shown  in  figure  2. 
It  compares  the  upper  four  bits  of  the 
address  bus  against  the  contents  of  a  4  bit 
page  register.  It  uses  7485  4  bit  magnitude 
comparators  to  test  whether  the  address  is  in 


Figure  2:  If  a  virtual  memory  system  is 
implemented,  there  is  a  definite  need  to  find 
out  whether  or  not  a  referenced  address  is 
currently  in  the  swapping  region  of  memory. 
This  can  easily  be  accomplished  by  using 
one  or  more  comparator  chips.  If  the  page 
select  register  is  equal  to  the  current  page 
address  reference  to  the  swapping  region, 
then  access  is  normal.  But  if  a  page  fault 
occurs  (a  reference  to  a  page  not  presently 
in  memory),  then  the  paging  processor  is 
invoked  while  the  main  processor  is  at 
rest  waiting  for  data.  The  2  microprocessor 
strategy  discussed  here  is  but  one  of  a 
number  of  strategies  possible  for  implement- 
ing virtual  memories. 


the  page  identified  by  the  page  register 
contents.  The  output  goes  high  when  the 
address  falls  outside  the  page.  (The  7485  is 
cascadable,  so  this  circuit  could  be  extended 
with  extra  bits  to  generate  a  virtual  memory 
space  of  a  full  megabyte.  This  would  require 
a  megabyte  of  peripheral  storage,  or  about 
four  floppy  disks.) 

Processors  are  cheap  these  days.  One  may 
as  well  use  a  micro  to  control  the  external 
storage.  It  will  be  idle  most  of  the  time, 
when  the  main  processor  is  happy  with  the 
present  memory  page.  When  the  page  select 
logic  indicates  that  a  change  of  page  is  neces- 
sary, the  paging  processor  goes  into  action. 
The  main  processor  is  made  to  wait.  The 
memory  buses  are  switched  to  the  control 
of  the  paging  processor.  The  paging  proces- 
sor reads  the  upper  four  (or  more)  bits  of  the 
main  processor  address.  If  the  present  page 
of  memory  has  been  written  into,  then  the 
new  contents  of  the  page  must  be  restored 
onto  the  external  store.  The  new  page  must 
be  read  in  from  external  storage  and  placed 
into  the  memory  page.  The  page  written 
latch  is  reset,  since  we  will  want  to  know  if 
the  main  processor  changes  the  contents  of 
the  page.  Finally,  the  page  address  register 
is  updated.  This  releases  the  main  processor 
to  continue  processing  as  though  nothing 
had  happened.  It  never  noticed  that  the 
paging  processor  took  over.  The  mechanism 
of  storage  used  by  the  paging  processor  is 
a  detail  of  the  design  of  the  virtual  memory 
system.  It  could  use  hard  disks,  floppy  disks, 
3M  drives,  digital  or  even  audio  cassettes. 
(A  very  ingenious  commercial  unit  using 
a  microprocessor  and  interpreter  for  the 
APL  language  runs  such  a  virtual  memory 
system  on  cassettes.  Watching  this  little 
beast  run  its  cassettes  around  while  running 
a  program  is  quite  impressive.  It  features  a 
256  K  byte  effective  address  space  .  .  .  limited 
by  the  storage  on  a  cassette.  [See  the  MCM/ 


80 


SYSTEM 
INITIALIZATION 


PAGE  FAULT 
INTERRUPT 


INITIALIZE 
PERIPHERALS 


SET  MEMORY  PAGE 


ENABLE    INTERRUPTS 


WAIT    FOR    INTERRUPT 


ENDLESS    LOOP 
IN  MAIN   PROCESS 


RESTORE  PAGE 
TO    MASS 
STORAGE 


READ 
NEW   PAGE 
FROM   MASS 
STORAGE 


CLEAR  WRITE 
LATCH 


IF  WRITE  LATCH  =  0  THEN  PAGE  HAS 
NOT  BEEN  CHANGED  SINCE  IT  WAS 
LAST  READ 


WRITE  LATCH  =  0   (NO  NEED  TO  COPY 
DATA   BACK    IF  IT  HAS  NOT  BEEN 
CHANGED) 


NOTE: 
"WRITE  LATCH"  IS    A  HARDWARE 
FLIP   FLOP  TESTABLE    BY  SOFTWARE, 
CLEARED    BY  SOFTWARE,  AND  SET 
BY  HARDWARE  WHENEVER   DATA  IS 
STORED   (WRITTEN  TO)  THE   PAGING 
REGION  OF  MEMORY. 


Figure  3:  What  to  do  when 
a  page  fault  occurs.  This  is 
a  simplified  flow  diagram 
of  a  virtual  memory  sys- 
tem control  process,  in- 
cluding initialization  and 
response  to  a  page  fault 
interrupt.  It  is  assumed  to 
be  running  in  a  micro- 
processor dedicated  to 
memory  management. 


RETURN   FROM 
INTERRUPT 


800  sold  by  Microcomputer  Machines  Inc, 
2125  Center  Av,  Fort  Lee  NJ  07024.) 
A  simple  flowchart  of  such  a  paging  proces- 
sor program  is  shown  in  figure  3.  The  main 
program  is  simply  initialization  followed  by 
a  wait  loop.  The  reset  function  of  the  main 
processor  also  starts  the  paging  processor. 
There  is  a  small  difficulty  here:  The  memory 
page  must  be  initialized  by  the  paging  pro- 
cessor before  the  main  processor  can  use  it. 
Some  means  must  be  found  to  keep  the 
main  processor  busy  while  the  memory  page 
is  being  initialized.  A  oneshot  triggered  by 
the  reset  line  (or  by  the  paging  processor), 
which  holds  the  main  processor  in  the  wait 
state  for  sufficient  time  for  the  memory  to 
be  set  up,  will  work.  An  output  bit  from  the 
paging  processor  can  also  be  used.  The  initial 
page  would  probably  be  the  operating  sys- 
tem. This  brings  up  another  interesting  point. 
Since  the  entire  content  of  memory  is 
stored  on  an  external,  and  nonvolatile 
medium,  one  can  think  of  the  entire  memory 
space  as  a  bit  like  ROM.  A  page  can  be 
write  protected  by  not  letting  the  paging 
processor  restore  that  page  from  real 
memory.  Such  memory  protection  can  be 
implemented  by  a  ROM  which  is  addressed 
by  the  page  address  lines  from  the  main  pro- 
cessor and  which  resets  the  page  written 
latch.  Thus,  the  page  processor  doesn't  think 
that  the  page  has  been  changed,  and  doesn't 
write  on  the  external  copy.  Software  in  the 


page  processor  can  implement  program  con- 
trol of  "write  protection." 

Another  point  is  that  if  the  main  pro- 
cessor has  ROM  in  its  address  space,  one 
doesn't  want  the  paging  processor  to  waste 
time  trying  to  page  into  that  address  area. 
A  similar  use  of  a  ROM  in  the  paging  proc- 
essor can  inhibit  paging  of  certain  pages 
in  which  the  main  processor  ROM  is 
located. 

With  a  virtual  memory  system,  and 
perhaps  memory  mapping,  there  is  often 
no  need  to  do  IO  with  large  data  blocks. 
Everything  is,  effectively,  in  memory  ad- 
dress space  and  10  is  often  hidden  by  the 
paging  process.  This  can  greatly  simplify 
programs  that  use  lots  of  data. 

Virtual  memory  systems  are  not  espe- 
cially cheap.  Using  a  floppy  disk,  a  system 
such  as  I  describe  here  would  probably 
cost  around  $2000  to  build.  A  single  floppy 
stores  about  256  K  bytes;  so  with  mapping, 
this  system  would  allow  a  quarter  megabyte 
address  space.  Think  of  wiring  together 
two  thousand  2102s!  Think  of  the  power 
supply  that  would  require!  Besides,  2102 
chips  cost  much  more  than  a  dollar  each. 
The  virtual  memory  space  could  be  doubled 
by  adding  another  floppy  drive.  It  should 
take  quite  a  while  for  you  to  exceed  these 
storage  limits.  When  you  do,  the  system 
readily  expands.  You're  not  likely  to  byte 
off    more       than    your    micro    can    chew." 


81 


An  Introduction 
to  Numbers 


Webb  Simmons 

1559  AlcalaPI 

San  Diego  CA  92111 


The  concept  of  fixed  point  numbers, 
scaled  numbers  and  floating  point  numbers 
originated  in  the  scientific  computer  en- 
vironment at  a  time  when  a  computer  was 
generally  considered  to  be  either  a  scientific 
computer  or  a  business  computer  rather  than 
the  general  purpose  computer  of  today. 
Business  computers  used  fixed  point  num- 
bers but  designers  felt  no  need  to  describe 
them  as  such  because  that  was  the  only  kind 
of  number  used.  Some  business  computers 
used  decimal  arithmetic  rather  than  binary 
arithmetic  and  allowed  a  variable  amount  of 
decimal  digits  for  various  variables  and 
values  of  programs.  Some  business  com- 
puters referred  to  their  decimal  digits  as 
characters  and  regarded  every  character 
whether  or  not  it  was  a  decimal  digit  as 
having  a  decimal  digit  value.  But  here  we're 
concerned  with  the  wider  concepts  of  num- 
ber representation  in  a  general  purpose 
computer. 

In  the  general  purpose  machine  we  regard 
all  numerical  values  to  be  binary  numbers  in 
some  sense.  The  point  in  fixed  point  and 
floating  point  is  not  a  decimal  point  but  is  a 
binary  point.  A  binary  point  in  a  binary 
number  plays  the  same  role  as  the  decimal 
point  in  a  decimal  number.  The  binary 
number  101  (meaning  101 J  has  the  decimal 
value  of  5.  The  binary  number  10J  has  the 
decimal  value  of  2.5.  The  binary  digit  to  the 
left  of  the  binary  point  has  the  place  value, 
positional  value,  of  one;  the  binary  digit 
next  further  left  has  the  place  value  of  two, 
then  four,  then  eight,  etc.  The  first  binary 
digit  to  the  right  of  the  binary  point  has  the 


place  value  of  one  half,  then  one  fourth,  one 
eighth,  etc.  Binary  1010.1010  is  decimal 
10.625.  Conversion  is  seen  by  adding  the 
digit's  place  values  10.625  =  8  +  2  +  0.5  + 
0.125. 

The  binary  value  in  a  register  or  memory 
location  contains  only  binary  digits  as  a 
succession  of  binary  zeroes  and  ones.  It  has 
nothing  in  it  that  is  explicitly  a  binary  point. 
It  is  the  responsibility  of  the  programmer  to 
decide  the  assumed  position  of  the  binary 
point.  If  the  binary  point  is  assumed  to  be  to 
the  right  of  the  least  significant  binary 
digit,  the  value  is  an  ordinary  integer.  Such 
a  value  is  often  called  a  "fixed  point" 
number  as  in  FORTRAN  or  PL/I.  The 
binary  point  can  be  assumed  to  lie  anywhere 
within  the  word  or  anywhere  outside  of  the 
word.  When  the  binary  point  is  assumed  to 
be  fixed  at  any  place  other  than  at  the  right 
of  the  least  significant  bit  (LSB)  it  is 
commonly  called  a  scaled  value,  or  scaled 
fixed  point  value.  Any  other  fixed  place- 
ment is  a  scaled  binary  number. 


Fixed  Point 

Valu 

e  ( I  ntegt 

»rj  8  B 

its 

7 

6 

5 

4 

3 

2 

1 

0 

1   '    1 

0 

1  '   1 

0 

I      °      I 

1      ] 

o 

'   1- 

165  DECIMAL 

128 

64 

32 

16 

8 

4 

2 

•1 

UNSIGNED 
RANGE:    0  TO  255 

ASSUMED 
BINARY  POINT 

Scaled  F 

ixed  Poi 

it 

7 

6 

5 

A 

3 

2 

1 

0 

1   -  1 

o 

1   '   1 

0 

I  °  I 

i   1 

0 

1  1    1  - 

20.625  DECIMAL 

UNSIGNED 

RANGE:   0.0TO31.875 

16 

8 

4 

2 

'1 

1/2 

1/4 

1/8 

1 

ASSUMED 

BINARY 

POINT 

82 


THE  LOGICAL  CHOICE-First  in  a  series 


Logic  Probe  1  is  a  compact,  enor- 
mously versatile  design,  test  and  trouble- 
shooting tool  for  all  types  of  digital 
applications.  By  simply  connecting  the 
clip  leads  to  the  circuit's  power  supply, 
setting  a  switch  to  the  proper  logic  family 
and  touching  the  probe  tip  to  the  node 
under  test,  you  get  an  instant  picture  of 
circuit  conditions. 

LP-1's  unique  circuitry— which 
combines  the  functions  of  level  detector, 
pulse  detector,  pulse  stretcher  and 
memory— makes  one-shot,  low-rep-rate, 
narrow  pulses— nearly  impossible  to  see, 
even  with  a  fast  scope— easily  detectable 
and  visible.  HI  LED  indicates  logic  "1", 
LO  LED,  logic  "0",  and  all  pulse  transi- 
tions—positive and  negative  as  narrow 
as  50  nanoseconds— are  stretched  to  Vb 
second  and  displayed  on  the  PULSE  LED. 


By  setting  the  PULSE/MEMORY  switch 
to  MEMORY,  single-shot  events  as  well 
as  low-  rep-rate  events  can  be  stored 
indefinitely. 

While  high-frequency  (5-10MHz) 
signals  cause  the  "pulse"  LED  to  blink  at 
a  3Hz  rate,  there  is  an  additional  indica- 
tion with  unsymmetrical  pulses:  with  duty 
cycles  of  less  than  30%,  the  LO  LED  will 
light,  while  duty  cycles  over  70%  will 
light  the  HI  LED. 

In  all  modes,  high  input  impedance 
(100K)  virtually  eliminates  loading  prob- 
lems, and  impedance  is  constant  for  all 
states.  LP-1  also  features  over-voltage 
and  reverse-polarity  protection.  Housed 
in  a  rugged,  high-impact  plastic  case 
with  strain-relieved  power  cables,  it's 
built  to  provide  reliable  day-in,  day-out 
service  for  years  to  come. 


PULSE  LED 
OFF 

LO  LED  ON                    I         HI   LED  ON 
HI  LED  ON 

nnM  fr° 

4           4        4        4        4 

LO  LED  ON 

DURING  PULSE    tnANf.iTIONS    PULSE  t€D  B 


I   LEO  ON.LO  LED  DOES  NOT  RESPOND  TO  NARROW  PULSES 


Dunn  pulsf  i 


n   n   n 


LO  LED  ON .  HI   LED  DOES  NOT  RESPOND  TO  NARROW  PULSES 


CSC'S  MULTI-FAMILY  LOGIC  PROBE  1. 
AT  $44.95,  IT  DIGS  UP  A  LOT  OF  INFORMATION  WITHOUT 

BURYING  YOUR  BUDGET. 


HI/LO  LED's— Display  leve 
(Hl-logic  "1",  LO-logic  "0"' 
of  signal  activity  at  node 
under  test 


PULSE  LED— Lets  you  know 
what's  going  on— and  off. 
Indicates  positive  and  nega- 
tive pulse  and  level  transi- 
tions. LP-1  stretches  pulses 
as  narrow  as  50  nano- 
seconds to  full  Vb  sec. 
(3Hz  pulse  rate) 


PULSE/MEMORY  Switch- 

PULSE  position  detects 
and  stretches  pulses  as  nar- 
row as  50  nanoseconds  to 
1/3  sec.  Switch  to  MEMORY 
and  it  stores  single  shot  and 
low-rep-rate  events  indefi- 
nitely; HI/LO  LED's  remain 
active 


Non-corrosive  nickel- 
plated  probe  tip  and  clip 

leads— For  reliable  contacts 
and  maximum  life 


Protected— Features  built-in 
reverse  polarity  and  over- 
voltage  protection;  strain- 
relieved  power  cable 


Logic  Family  Switch— 

TTL/DTL  or  CMOS  matches 
Logic  "1"  and  "0"  levels. 
,  for  greater  versatility.  High 
Input  Impedance— 100K 
virtually  eliminates  circuit 
loading  problems  and  is 
constant  in  both  "0"  and 
"1"  states.  CMOS  position 
also  compatible  with  HTL, 
HiNILand  MOS  logic 


EASY  DOES  IT 

44  Kendall  St .  Box  1942  New  Haven.  CT  06509 
TWX:  710-465-1227 

West  Coast  office:  Box  7809.  San  Francisco.  CA  94119 
TWX  910-372-7992 


See  your  CSC  dealer  or  call  203-624-3103  (East  Coast)  or  415-421-8872  (West  Coast) 

9  AM  to  5  PM  local  time.  Major  credit  cards  accepted.  Add  $2.50  for  shipping  and 

handling  in  the  U.S.  and  Canada  on  direct  orders  of  550.00  or  less;  $3.00  for  orders 

over  $50.00.  On  all  foreign  orders  add  15%  to  cover  shipping  and  handling. 

Circle  22  on  inquiry  card. 


The  values  which  can  be  represented  as  an 
integer  in  one  8  bit  byte  arc  from  zero  to 
255  when  all  values  are  considered  to  be 
unsigned,  and  therefore  positive.  In  signed 
two's  complement  notation  the  fixed  point 
values  in  one  byte  are  the  integers  from 
-128  to  +127.  In  either  case  there  arc  256 
different  values  possible,  of  which  all  are 
integers  with  no  fractions  permitted. 

Scaled  fixed  point  binary  is  not  often 
used  except  as  a  part  of  a  floating  point 
word.  When  scaled  numbers  were  widely 
used  in  earlier  computers,  the  binary  point 
was  frequently  placed,  or  assumed  to  be 
placed,  in  the  center  of  a  long  computer 
word  of  36  bits,  48  bits  or  60  bits  in  length. 
Another  common  placement  used  was  at  the 
left  of  the  most  significant  bit  (MSB)  but  to 
the  right  of  the  sign  bit  of  a  two's  comple- 
ment number.  In  scaled  values  of  this  type 
the  values  are  always  less  than  one  and 
greater  than  minus  one.  Many  modern  large 
computers  have  instructions  to  facilitate 
operations  on  these  fractional  scaled  values. 

Signed  Scaled  Fixed  Point  Values 


ASSUMED 
BINARY 

POINT 


Scaled  fixed  point  values  will  not  figure 
strongly  in  our  futures,  except  in  those  rare 
cases  where  speed  or  other  application 
dependent  criteria  require  optimization. 

For  signed  and  scaled  fractional  two's 
complement  numbers,  the  largest  binary 
value  is  0  .1 11 1 1  II  and  the  smallest  binary 
value  would  be  I  .0000000  where  the  digit 
to  the  left  of  the  binary  point  is  the  sign  bit; 
however,  if  we  are  to  limit  the  range  to 
fractional  values,  we  must  throw  out  the 
1.0000000  state  and  treat  1.0000001  as  the 
most  negative  value.  This  leaves  us  with  255 
states  ranging  from  +(127/128)  to 
—(127/128)  or  performing  the  division, 
+.9921875  to -.9921875. 

Extending  Precision 

The  fact  that  a  particular  computer  uses 
bytes  for  its  memory  storage  and  registers 
does  not  mean  that  a  datum  must  be  one 
byte.  A  unit  of  data  can  be  any  number  of 
bits  regardless  of  the  computer  word  length. 
It  can  be  1 9  bits  on  a  1  3  bit  word  machine  if 
you  program  such  a  construction.  This 
would  be  unusual  but  it  certainly  is  possible. 
It  is  customary  to  define  the  numerical  data 
so  that  it  will  use  1 ,2,3  or  some  other  whole 
number  of  bytes  or  words.  Dividing  data  on 


memory  address  boundaries  eases  and  simpli- 
fies programming. 

Scaled  values  were  useful  enough  for 
many  purposes  but  their  use  was  trouble- 
some to  the  programmer.  If  a  value  got  too 
large,  there  was  danger  of  overflow.  If  a 
value  got  too  small,  there  was  a  loss  of 
significance  caused  by  too  many  leading 
zeroes  and  the  danger  of  the  value  becoming 
zero.  Special  scaling  factors  had  to  be  used 
from  time  to  time  to  keep  the  problem  in 
hand,  and  of  course  the  effects  of  the  scaling 
factors  had  to  be  removed  when  the  compu- 
tations were  completed.  The  invention  of 
floating  point  numbers  cured  most  of  the 
scaling  difficulties. 

Enter  Floating  Points 

A  floating  point  number  has  two  parts  for 
each  value.  One  part  is  a  fraction  which  is  a 
scaled  fixed  point  number  as  described 
above.  The  fractional  part  has  many  names. 
It  may  be  called  the  fraction,  mantissa  or 
coefficient.  The  typical  floating  point  num- 
ber has  a  fraction  whose  absolute  value  is 
always  less  than  one.  The  minimum  frac- 
tional value  is  determined  by  the  base  of  the 
other  part  of  the  floating  point  number.  This 
other  part  of  a  floating  point  number  has 
been  called  the  exponent,  power  or  charac- 
teristic depending  on  whose  description  you 
read.  It  is  the  exponent  or  power  to  be 
applied  to  some  base  (also  called  the  radix) 
that  forms  a  scaling  factor.  The  value  of  the 
number  is  the  fractional  part  multiplied  by 
the  base  raised  to  the  power  of  the  ex- 
ponent's value. 

For  many  years  the  base  for  the  exponent 
part  of  a  floating  point  number  was  almost 
invariably  two.  For  a  base  radix  of  two  a 
nominal  minimum  absolute  value  for  the 
fractional  part  is  one  half.  We  set  up  our 
hardware  or  software  to  force  the  most 
significant  bit  of  the  mantissa  to  be  one,  in 
order  to  "normalize"  our  numbers.  Simi- 
larly, for  each  possible  base  we  constrain  the 
fractional  value:  For  a  base  of  four  the 
minimum  fraction  value  is  one  fourth.  For  a 
radix  of  eight  the  minimum  fraction  is  one 
eighth  and  for  16  it  is  one  sixteenth.  IBM 
System  360/370  uses  a  radix  of  16  for  the 
exponent  base  in  floating  point  numbers  and 
so  do  various  other  computers  and  systems. 
Whatever  the  radix  for  the  exponent,  when- 
ever the  fraction  is  greater  than  or  equal  to 
the  minimum  value  for  that  base,  the  float- 
ing point  number  is  said  to  be  normalized. 
(In  order  words,  it  is  the  "normal"  or  "best" 
form.) 

There  is  very  little  standardization  among 
floating  point  numbers.  The  radix  for  the 
exponent's  base  may  be  two  or  it  may  be  ten 


84 


FLIP  OVER  OUR  FLOPPY 


Only  $750  from  Peripheral  Vision. 


Peripheral  Vision  is  a  brand-new  company  that's  dedi- 
cated to  selling  reasonably  priced  peripherals  for  various 
manufacturers'  CPU's. 

We  think  you'll  flip  over  our  first  product. 

It's  a  full-size  floppy  disk  for  the  Altair-lmsai  plug-in 
compatible  S-100  BUS.  And  it's  available  for  as  low  as  $750. 

Here  are  the  features: 

•  1  interface  card  supports  4  drives 

•  Stores  over  300,000  bytes  per  floppy 

•  Bootstrap  EPROM  included — no  more  toggling  or 
paper  tape 

•  Completely  S-100  plug-in  compatible 

•  Interface  cabling  included 

•  Drive  is  from  Innovex  (the  originator  of  the  floppy 
concept) — assembled  and  tested 

•  Interface  card  design  is  licensed  from  Dr.  Kenneth 
Welles  and  the  Digital  Group 

•  Disk  operating  system  with  file  management  system 
included  on  floppy 

•  Cabinet  and  power  supply  optional 


Now,  a  little  more  about  our  company. 

Peripheral  Vision  may  be  brand-new,  but  we  have  some 
old-fashioned  ideas  about  how  to  run  our  business. 

We  know  there  are  serious  incompatibilities  among  the 
different  manufacturers'  peripherals  and  CPU's.  We  want  to 
get  them  together.  And,  we  want  to  bring  significant  new 
products  to  market — products  consisting  of  everything  from 
adaptation  instructions/kits  for  hardware  and  software  to 
major  new  products. 

It's  a  tall  order,  but  we  feel  we're  up  to  the  task. 
Peripheral  Vision  has  already  obtained  a  license  from 
The  Digital  Group  to  adapt  versions  of  some  of  their  prod- 
ucts to  the  S-100  BUS.  And  we're  working  on  getting  more 
from  other  companies. 

Most  important  to  our  customers,  Peripheral  Vision  is 
committed  to  helping  you  get  along  with  your  computer. 
We'll  do  all  we  can  to  make  it  easy. 

Write  us  now  for  all  the  information  on  our  company, 
our  philosophy  and  our  exciting  line  of  products.  And  be 
prepared  to  flip  over  all  of  it. 


Prices: 

Interface  card  kit  and 
assembled  and  tested  drive 

Power  supply — +24V  at  2A 

Cabinet — Optima,  blue 


Circle  23  on  inquiry  card. 


Kit 

S750 
45 


Assm. 

$850 
65 
85 


RO.  Box  6267   Denver.  Colorado  80206  (303)  733-1678 

Send  me  the  works,  and  I  just  might  flip  over  it! 

Name . 


Address. 


City/State/Zip. 


Table  7 :  This  is  a  summary 
of  the  nominal  maximum 
relative  error  that  occurs 
for  different  field  widths. 
The  field  widths  are 
measured  in  bits.  The  max- 
imum error  column  is  cal- 
culated as  being  the  maxi- 
mum error  or  change  in 
value  that  occurs  if  the 
least  significant  bit  is  lost 
or  changed.  The  decimal 
digits  column  indicates  the 
number  of  decimal  digits 
which  are  unaffected  by 
relative  error  in  the  repre- 
sentation. 


or  even  1  6.  Within  a  floating  point  word  the 
bits  for  the  exponent  can  be  either  before  or 
after  the  fraction.  The  number  of  bits  for 
the  exponents  vary  widely  in  different  sys- 
tems as  do  those  for  the  fractions.  There  are 
various  schemes  for  showing  the  signs  for  the 
exponents  and  the  signs  for  the  fractions. 

The  dynamic  range  of  values  allowed  for 
a  floating  point  number  is  determined  pri- 
marily by  the  radix  for  the  exponent  and  the 
number  of  bits  in  the  exponent.  The  IBM 
System  360  and  370  hardware  uses  an  8  bit 
exponent  of  which  one  bit  is  used  to  take 
care  of  the  sign  for  the  exponent  (it  is  not 
truly  a  sign  bit  but  the  overall  effect  is  much 
the  same)  and  one  bit  handles  the  sign  for 
the  fraction  which  leaves  six  bits  to  deter- 
mine the  value  of  the  exponent.  The  largest 
value  in  six  bits  is  63  which,  when  applied  to 
a  base  of  16,  produces  16^3  or  approxi- 
mately 7X1075.  The  smallest  positive  ex- 
ponent is  equivalent  to  1 6  64  or  approxi- 
mately 9X10~78  These  exponents  must  be 
multiplied  by  some  fraction  between  0.0625 
and  1  to  get  the  final  value  of  a  floating 
point  word.  The  exponent  for  a  Univac  1 100 
series  computer  is  nine  bits  which  loses  two 
bits  for  the  signs.  The  remaining  seven  bits 
would  seem  better  than  the  remaining  six  for 
the  System  370  except  that  the  radix  of  the 
exponent  is  two.  The  largest  exponent  is 
2127  or  approximately  1.7X1038  and  thus 
much  smaller  than  that  for  the  IBM  version. 
The  Univac  double  precision  floating  point 
word  allows  numbers  to  21024  or  approxi- 


Number  of 

Maximum 

Decimal 

3  its 

Values 

Error 

Digits 

2 

4 

.250 

0 

3 

8 

.125 

0 

4 

16 

.063 

1 

5 

32 

.031 

1 

6 

64 

.016 

1 

7 

128 

8E-3 

2 

8 

256 

4E-3 

2 

9 

512 

2E-3 

2 

10 

1k 

1E-3 

3 

11 

2k 

5E-4 

3 

12 

4k 

2£4 

3 

13 

8k 

1E-4 

3 

14 

16k 

6E-5 

4 

15 

33k 

3E-5 

4 

16 

66k 

2E-5 

4 

17 

131k 

1E-5 

5 

18 

262k 

4E-6 

5 

19 

524  k 

2E-6 

5 

20 

1M 

1E-6 

6 

21 

2M 

5E-7 

6 

22 

4M 

2E-7 

6 

23 

8M 

1E-7 

6 

24 

17M 

6E-8 

7 

25 

34M 

3E-8 

7 

26 

67M 

1E-8 

7 

27 

134M 

7E-9 

8 

28 

268M 

4E-9 

8 

29 

537M 

2E-9 

8 

30 

1G 

9E-10 

9 

31 

2G 

5E-10 

9 

32 

4G 

2E-10 

9 

mately  1.8X1 0^8  which  is  pretty 
impressive. 

The  precision,  or  accuracy  limit,  of  a 
floating  point  number  is  determined  by  the 
number  of  bits  in  the  fraction  part.  Just  in 
case  you're  mistakenly  tempted  to  regard 
accuracy  and  precision  as  being  the  same,  let 
us  learn  to  distinguish  between  them.  Pre- 
cision relates  to  the  ability  to  differentiate 
between  value  representations  that  are 
nearly  the  same.  In  terms  of  decimal  values 
the  precision  can  be  to  eight  significant 
digits  but  if  the  accuracy  is  less  than  the 
precision  then  some  or  all  of  these  eight 
digits  are  nonsense.  Accuracy  cannot  exceed 
precision.  Precision  can  be  defined  as  the 
maximum  possible  relative  accuracy.  You 
cannot  easily  ascribe  a  precision  to  a  1  bit 
field  because  there  is  only  one  nonzero  value 
possible. 

In  spite  of  slight  conceptual  error  it  is 
often  convenient  to  regard  the  precision  as 
the  representional  error  caused  by  the  vari- 
ation of  one  in  the  least  significant  bit 
position  for  a  field  width  in  bits  that  does 
not  include  leading  zero  bits.  Using  this 
method  for  two  bits  we  can  stipulate  four 
values,  so  we  can  say  the  precision  is  about 
25%. 

From  this  point  let  us  decide  to  give 
precision  as  the  precision  in  bits  in  the  bit 
field  that  does  not  include  leading  zero  bits. 
Then,  for  each  such  precision,  we  can 
compute  an  error  that  will  have  nothing  at 
all  to  do  with  accuracy  beyond  placing  a 
limit  on  the  accuracy.  This  is  equivalent  to 
saying  that  a  method  or  procedure  which 
produces  a  value  can  be  totally  wrong  but 
this  does  not  reduce  the  precision  in  the 
value  as  it  is  represented.  We  can  claim  the 
square  root  of  4  to  be  1 .389567.  This  square 
root  is  quite  precise  but  not  very  accurate. 

When  one  thinks  of  errors  it  is  usually 
errors  caused  by  all  inaccuracies  rather  than 
just  those  errors  caused  by  precision  of 
expression:  However,  for  the  remainder  of 
this  article  I  will  take  a  narrow  view  of  errors 
and  assume  they  are  all  caused  by  precision 
only.  The  nominal  maximum  relative  errors 
for  different  field  widths,  measured  in  bits, 
are  summarized  in  table  1. 

Our  approximate  rule  for  the  maximum 
error  in  a  2  bit  value  gave  us  25%  when 
the  true  value  was  about  20%.  As  the  field 
width  in  the  number  of  bits  increases  the 
approximate  rule  improves  and  is  close 
enough  in  any  case.  It  is  important  to 
remember  that  the  effective  field  width  does 
not  include  leading  zeroes. 

The  floating  point  fraction  on  the  Uni- 
vac 1108  (Univac  calls  it  the  mantissa)  is 
27  bits  wide  and  the  most  significant  bit  is 


86 


always  set  for  positive  values.  Thus  the 
precision,  expressed  as  the  maximum  repre- 
sentational error,  is  about  one  part  in  10§ 
and  is  equivalent  to  seven  or  eight  significant 
decimal  digits.  The  single  precision  floating 
point  fraction  on  the  IBM  System  370  com- 
puters is  allowed  a  width  of  24  bits  but 
because  the  exponent  radix  is  base  16,  the 
normalized  fraction  can  have  from  none  to 
three  leading  zeroes.  The  precision  therefore 
varies  from  an  error  of  about  one  part  in  1 0^ 
for  24  bits  to  one  part  in  10?  for  21  bits. 
The  equivalent  decimal  precision  is  about  six 
or  seven  significant  decimal  digits.  The  IBM 
fraction  is  not  quite  as  good  as  Univac's  but 
the  dynamic  range  allowed  by  the  floating 
point  exponent  is  greater.  Both  are  greatly 
inferior  to  the  CDC  machines  with  their  12 
bit  exponent  and  48  bit  mantissa  in  a  word 
of  60  bits. 

It  is  not  customary  to  use  a  signed  value 
in  the  exponent  part  of  floating  point 
numbers.  The  more  usual  arrangement  is  to 
bias  the  exponent  by  adding  a  constant.  The 
exponent  range  for  the  IBM  floating  word  is 
from  16~64  to  1  6^3  jne  16  is  not  shown 
but  is  assumed.  IBM  adds  64  to  the  ex- 
ponents so  that  the  floating  exponent  part 
for  the  value  16—64  is  zero  and  for  1663 
is  127.  A  floating  value  of  one  is  equiva- 
lent^ 16X1/16=1  which  yields  binary 
01 000001 0001 00000000000000000000  as 
a  single,  32  bit  value.  In  hexadecimal  this  is 
41100000.  The  exponent  part  in  hexa- 
decimal is  41.  Table  2  shows  a  summary  of 
the  binary  and  hexadecimal  digit  placement 
as  used  by  IBM. 

Negative  floating  values  are  typically 
formed  one  of  two  ways.  The  word  as  a 
whole  is  simply  arithmetically  inverted  or 
else  only  the  sign  bit  is  inverted.  Either  of 


hexadecimal  4        110        0        0       0        0 

binary  01 000001  0001 00000000000000000000 

Table  2:  The  breakdown  of  a  sample  number  of  a  32  bit  word  into  binary  and 
hexadecimal  digit  groups. 


these  methods  is  satisfactory  and  neither 
changes  the  dynamic  range  of  the  exponent 
nor  the  precision  of  the  fraction. 

Many  IBM  users  go  to  double  precision 
floating  point  because  the  precision  equiva- 
lent to  6  decimal  digits  is  not  sufficient  for 
their  needs.  In  this  case  the  exponent,  and 
the  dynamic  range,  is  not  changed  but  the 
fraction  width  is  increased  to  56  bits  which 
is  equivalent  to  about  17  decimal  digits. 
Double  precision  on  the  Univac  allows 
12  bits  for  the  exponent,  versus  the  single 
precision  9  bits,  and  60  bits  for  the  fraction, 
versus  the  single  precision  27  bits.  Double 
precision  on  the  CDC  machines  is  almost 
ridiculous  —  the  exponent  is  essentially 
repeated  in  the  second  word  which  allows 
96  bits  for  the  fractional  part  which  is 
equivalent  to   more  than  30  decimal  digits! 

If  I  were  writing  a  complete  programming 
system  for  an  8  bit  byte  machine,  I  would 
not  use  a  4  byte  copy  of  the  IBM  floating 
word  but  would  use  two  bytes  for  the 
exponent  with  an  exponent  base  radix  of 
two  rather  than  16  and  four  bytes  for  the 
fraction  part.  A  32  bit  fraction  is  equivalent 
to  about  nine  significant  decimal  digits  and 
the  exponent  range  would  be  ridiculously 
large.  Or  maybe  one  should  use  the  IBM 
method  but  adding  two  bytes  to  the  fraction 
part.  My  point  here  is  that  I  personally  do 
not  like  a  word  with  only  six  decimal  digits 
of  precision." 


The  COMPUTALKER  Model  CT-1  optimizes  the  trade-off 
between  low  data  rate  speech  and  directly  digitized  speech. 
Low  data  rate  speech  relies  on  canned  definitions  for  the 
sound  of  each  phoneme,  which  produces  mechanical 
sounding  speech.  Digitized  speech,  while  remaining  faithful 
to  the  original  sound,  requires  1  OK  to  20K  bytes  per  second 
of  storage  and  is  inflexible  to  phonetic  manipulation. 
With  the  Model  CT-1,  the  sounds  are  defined  in  real  time 
under  software  control.  Parameters  which  represent  the 
phonetic  structure  of  human  speech  are  transmitted  to  the 
CT-1  at  a  rate  of  500  to  900  bytes  per  second.  This  allows 
the  production  of  highly  intelligible  and  quite  natural 
sounding  speech  output.  Speaker  characteristics  and 
language  or  dialect  variations  are  retained  in  the  output. 
The  CT-1  can  also  be  operated  in  a  low  data  rate  mode  using 
phoneme  definitions  contained  in  the  CSR1  Synthesis-by- 
Rule  software  package.  The  COMPUTALKER  speech  synthesis 
system,  used  in  this  way,  has  the  advantage  that  the 
software  driver  can  easily  be  modified  to  keep  the 
naturalness  and  intelligibility  of  the  speech  output  up  to 
date  with  the  constantly  evolving  state  of  the  art  of  rule 
governed  speech . 


SPEAK  "KAAMPYUTAOLKER" 

WRITE  FOR  INFORMATIVE  LITERATURE 

COMPUTALKER  CONSULTANTS 

P.O.  BOX  1951,  DEPT.  B., 

SANTA  MONICA,  CA  90406 


CALIFORNIA: 

Long  Beach,  CA  90815 

A-VIDD  Electronics 

[213]S98-0444 

Lawndale.CA  90260 

Byte  Shop  of  Lawndale 

[213]371-2421 

Orange,  CA  92667 

The  Computer  Mart 

[714)633-1222 

Santa  Monica,  CA  90401 

The  Computer  Store 

[213]451-0713 
GEORGIA: 

Atlanta,  GA  30305 

Computer  Systems  Center 

[404]231-1691 
INDIANA: 

Bloomington,  IN  47401 

The  Data  Domain 

[812]  334-3607 
KANSAS: 

Kansas  City,  MO  64113 

Micro-Corn,  Inc. 

[8161333-8383 
MICHIGAN: 

Royal  Oak,  Ml  48073 

Computer  Mart  of  Royal  Oak 

[313]  576-0900 


NEW  JERSEY: 

Hoboken,  NJ 07030 

Hoboken  Computer  Works 

[2011420-1644 
OREGON: 

Portland,  OR  97201 

Byte  Shop  of  Portland 

[503]  223-3496 
VIRGINIA,  WASH.  DC; 

Fairfax,  VA  22030 

Roberts  Information 

Services,  Inc. 

[703]560-6119 
CANADA: 

Toronto,  Ontario/Canada 

M5V  1Z1 

The  Computer  Place 

[416]  598-0262 
ENGLAND. 

London  NW6,  England 

Compelec  Electronics 
GERMANY,  AUSTRIA: 

8011  Munich-Putzbrunn 

Datameg  Div.  of  Megatron  KG 

[089] 46     50     66 
JAPAN: 

Shibuya-ku,  Tokyo,  Japan 

Pax  Electronic! 

[03]  370-2751 


87 


Circle  24  on  inquiry  card. 


SYNCHRO-SOUND  Enterprises 

Your  Small  Computer  Department  Store 


>]  »*.i  il»]»]»]  I  i  [*■(*] 


Hardware  and  Software 


Compare  our  PRICES,  PRODUCTS,  QUALITY, 


»]  3  n  VI J :  W*ci  a  :Vi  m : 


you  need  in  small  computers,  terminals, 
printers,  monitors,  keyboards,  accessories. 
We'll  meet  or  beat  competitive  prices  on 
everything  we  sell! 


LEARSIEGLER 

ADM-3A  TERMINAL 


IMSAI  8080  MICROCOMPUTER 


Full  addressable  cursor. 

Character  Generation—  5x7  dot  matrix. 

Display  Format—  Standard:  1920 

characters,  displayed  in  24  lines  of  80 

characters  per  line. 

Character  Set—  Standard:  64  ASCII 

characters,  displayed  as  uppercase,  plus 

punctuation  and  control. 

Communications  Rates—  75  to  19,200 


Powerful  •  Easy  to  use  •  Low  cost 

With  22  Slot  Mother  Board..  .$619.95 
With  Z-80  CPU 849.95 


OKIDATA  Model  110  Line  Printer 


•  110  CPS 
dot  matrix 


Friction  Feed $1099.00 

Tractor  Feed 1229.00 

RS  232C  Serial  Interface.  .  .250.00 


baud  (switch  selectable). 

•  Computer  Interfaces —  EIA  standard 
RS232C  and  20mA  current-loop  (switch 
selectable). 

•  Data  Entry—  New  data  enters  on  bottom 
line  of  screen;  line  feed  causes  upward 
scrolling  of  entire  display  with  top-of- 
page  overflow.  Automatic  new  line 
switch  selectable,  end-of-line  audible 
tone. 

ADM-3A  Kit $839.95       i 

ADM-3A  Assembled  .1079.95 
Lower  Case  Option 89.00      I 

SPECIAL  BUYS 

HAZELTINE  Modular  One  Video 
Terminal 

$1639.00 

959.00 

2769.00 

2595.00 
989.00 

599.00 
2095.00 

300.00 
29.95 
69.95 

ilivery 

SORAC  IQ120  Video  Terminal  Kit 
DEC  LA180  Printer 

COMPUCOLOR8001  Color  Graphics 
Computer 

ICOM  Microfloppy  Disc  &  Controller.  .  . 

NORTH  STAR  Microfloppy  Disc  & 
Controller 

OKIDATA  Model  22  Printer 

OMNITEC401C300  Baud  Modem 
2708EPROMS 

OAE  Papertape  Reader 

SOL  20  In  Stock  For  Immediate  De 

NEKI 


COMMERCIAL  QUALITY  KEYBOARD 


The  Model  SS-1  Communications  Terminal 
is  a  non-contact  capacitive  keyboard  with  a 
guaranteed  life  of  over  100,000,000  opera- 
tions. 

•  MOS/LSI  Encoder  with  high  reliability 
low  power  consumption. 

•  Key  Roll  Over  which  eliminates  operator 
error  and  increases  thruput. 

•  Hysteresis  for  tease  proof  operation. 

•  Solid  State  performance  at  mechanical 
switch  prices. 

•  Tactile  Feedback  at  the  operate  point. 

•  ASR-33  Array  with  four  mode  encoding. 

Keyboard  Kit $99.95 

Enclosure  (with  numeric 

cutout) 49.95 

Numeric  Pad 34.95 

Complete  Kit  (with  pad)!  79.95 
Assembled  Unit 

(with  pad) 229.95 


DECwriterll 


SOFTWARE 

Attention  ALTAIR  DISK  Owners 

Now  available— an  Accounts  Receivable 
System  for  the  small  user.  This  system  is  ex- 
pressly designed  to  be  run  on  an  8080  based 
microcomputer  using  an  Altair  floppy  disk  with 
Altair  Basic,  Video  Terminal  and  Printer.  Many 
features  normally  found  only  on  large  scale  com- 
puters are  included.  Provided  are  such  functions 
as:  Adding  New  Customer  Accounts,  Deleting 
Dormant  Accounts.  Transaction  Processing, 
and  Report  Generation.  The  Monthly  Statements 
include  both  current  and  aged  balances.  Other 
reports  generated  are  the  Aged-Accounts 
Receivable  and  Delinquency  Notices. 

This  easily  usable  system  requires  very  little 
operator  training.  All  communication  is  in  an  in- 
teractive mode  with  the  program  constantly 
prompting  the  appropriate  responses.  Operator 
errors  are  easily  corrected  and  accidental  data 
base  deletions  are  prevented  by  requiring  addi- 
tional confirmation. 

This  Accounts  Receivable  System,  although 
supplied  ready  for  use,  may  readily  be  modified 
to  include  special  installation-dependent  func- 
tions. All  major  programs  are  written  in  high 
level  language  making  program  additions  and 
alterations  a  simple  task.  This  program  module 
is  designed  to  serve  as  the  basis  for  a  complete 
accounting  package.  Provisions  are  included  for 
linking  Billing  Inventory  Control  and  General 
Ledger  modules  which  will  be  available  in  the 
near  future. 


We  carry  a  full  line  of  the  following:  TDL,  OAE, 
Processor  Tech.,  Hayden,  Tarbell,  IMSAI, 
Cromemco,  Compucolor,  Icom,  Lear  Siegler, 
Okidata,  DEC,  Javelin,  Teletype,  North  Star, 
Heuristics,  Peripheral  Vision,  TRW.  Same  day 
delivery  and  shipping  on  most  items.  Full, 
modern  repair  facilities  on  premises  for  com- 
plete servicing  of  everything  we  sell. 


SYNCHRO-SOUND  Enterprises 

The  Computer  People 

193-25  Jamaica  Avenue,  Jamaica, 
New  York  11423  •  212/468-7067 

Hours  9-4  daily  Visit  our  new  showroom  . 

and  Saturday  working  units  on  display 

Dept.  b       BankAmericard  •  Master  Charge 


•  132  column  printing  •  30  CPS 

•  Full  keyboard  •  Tractor  Feed 


$1769.95 


I  Please  send 

me 

further 

nformat 

on  on 

(list 

items) 

Price 

List  a 

City 

State 

Zip 

Circle  25  on  inquiry  card. 


DeskTop  Wonders 


Jeu  de  NIM,  Peut  Etre? 


We  recently  received  the  following  from  Alain  Chance'  in  Paris.  Alain  is  a 
confirmed  SR-52  fan,  as  his  letter  so  amply  indicates.  It,  just  goes  to  show 
that  enthusiasm  for  small  systems  programming  is  by  no  means  limited  to 
the  US. 


Alain  Chance 

20  rue  de  Longchamp 

75116  Paris  FRANCE 


I  am  an  enthusiastic  reader  of  your  maga- 
zine. Since  I  own  an  SR-52  with  PC-100 
printer  attachment,  I  have  read  "The  Buried 
Gold  in  the  SR-52"and  "DeskTop  Wonders" 
[December  1976  BYTE,  pages  30  and  92} 
with  great  interest. 

But  I  think  that  the  register  organization 
offers  a  much  more  fantastic  ability:  By  the 
use  of  memory  functions  and  program 
storage  registers,  a  program  can  alter  itself! 


'^A^ 


"That  funny  black  caterpillar  you  just  killed  will  set  you  back  five 
bucks. " 

By  Duane  Bibby 


To  find  out  the  correspondence  between 
codes  and  program  register  contents,  we 
execute  the  following  sequence  using  the 
SR-52's  2  digit  keycodes: 

*7TEE    12   STO   70    *rset    "list 

and  we  get: 

display       =   3.141592654  12 
printout     =  000  20  001  01    002  00  003  54 
004  26   005  59    006  41    007  31 

The  following  program  should  prove  very 
useful  to  SR-52  enthusiasts: 


000  0 

001  0 

002  0 

003  0 

004  0 

005  0 

006  0 

007  0 

008  0 

009  *LBL 

010  A 

011  0 

012  0 

0130 

0140 

015*rtn 

016  *LBL 

017  B 

018  EE 

019  5 

020  8 

021  + 

022  RCL 

023  7 

024  1 

025  = 

026  STO 

027  7 

028  0 

029  *rtn 

030  0 

031  0 

To  see  how  it  works,  perform  the  following 
sequence: 

*  77  STO  05  5  STO  97 
Input  0.7094336 

Press  B,  display  =  5.607094336  60 
Press  A,  display  =3.141592654  00 

The  A  function  operates  exactly  the  same 
way  as  if  we  had  keyed  in  the  following 
steps  (in  the  learn  mode): 

*IND    RCL  97 

To  replace  those  four  steps  by  GTO  123 
(whose  codes  are  41  01  02  03),  we  would 
merely  input  .3020141  and  press  B. 

This  unique  feature  opens  a  new  dimen- 
sion in  programming. 

For  SR-52  games  hunters,  I  offer  the 
following  version  of  NIM  which  allows  up  to 
nine  rows  of  1023  pawns  each.  (This  pro- 
gram should  be  run  with  the  PC-100 
printer.) 


90 


Program  Listing 


v^SR-52 

CODING  FOR 
NTH 

VI  -   KODE 

AGE  /SEITE/P 

a CM  A 

FORM  ~   FEUILLE 

ARF           A 

DE  PROGR/ 

OF/VON/DE 
DATUM /DATE 

iMMATION 

^ 

PROGRAMMER/ PROG  HAMM1ERER/  PROG  RAMM  EUR  _     r\l0.t 

.hl-CE DATE  / 

iin_a*0tW7« 

Loc.     Code  ;      Key          Comments 
Adf.  ;Kodej     Taste      Bemerkungen 
Adr.  '  Code  |  Touche    Commentaires 

Loc. 
Adr. 
Adr. 

Code 
Kode 
Code 

Key 
Taste 
Touche 

Comments 
Bemerkungen 
Commentaires 

Loc. 
Adr. 
Adr. 

Code 
Kode 
Code 

Key 
Taste 
Touche 

Comments 
Bemerkungen 
Commentaires 

Labels 
Label 
Labels 

t 

ne'e 

•JS2 
! 

w©      '  ,    „ 

*LBL 

A 

00 

0 

00 

0 

.  nombrc  de 
MrionS  ao<Jeb 

11 

St 

•Mm 

<H 

STO 

B  r>umtro  <Je  Ifc 

M 

STO 

Wi 

*7 

"1 

06 

e. 

C   TEO 

ot         € 

se 

"ptn 

«7 

7 

Dhon  affttie 

8njj 5  2      «PPt 

53     "pap 

4-6 

[u 

045        I 

»'    °3 

"LBL 

oeo 

56 

*rtn 

E  u*)  *>o 

B 

B 

<H 

*LBL 

A'  (o  5TO  oo 

5TC 

15 

*  D' 

#(>' 

g^CtCt-oo-1) 

1  li 

_L»». 
"JO 

*  11x16 
STO 

3 



9 
8 

o| 

1 

C1UL0O  «OC7 

j_?S 

o  o 

0 

D" 

I  3  8 

*prt 

085 

55 

4- 

p.  =o  SC  p»CP, 

*o  ii  Impair 

_.i_8£ 

+■ 

4-2 

STO 

Mn'mo.7,.^n""'5"" 

16  T*A' 

+  tBL 

4-S" 

r" 

co  utilise  p«wr 
I'uiit  i*ocrtf  n 

OO               0 

M0«  u 

*  A' 

K' 

4-3 

RCL 

01  cchticnnchl 

M     *LftL 

i    o| 

1 

of 

C 

02  le  howbre 

87 

*  1 

»  1 

SO 

0 

090 
399 

o7 

7 

03  <U  pious 

'S 

*** 

3< 

*IWD 

Ui 

STO 

«S" 

X 

de   chicunt 

<r3   1  "  PRof), 
oj            i 

oi          8 
4-3  j    RcL 

"  °>  I    9      | 
7S       - 
17      *&'  ... 
J2        INV 
Jt»  80   !  "if  pos 

oo    1       0 

oo 

o 
o 

^36 

*jto.b 

Acs  Srangte 

B55 

oo 

<H 

B.CL 

06titpPime' 

5S" 

= 

oo 

o 

07dins  le 

STO 

9 
3 

"rtn 

095 

S02 

oo 

o 

08  ^steme 

95 

= 

09  bih>tpft 

5-6 

"rtn 

io        0 

«•< 

*LBL 

1  'contienrwht 

s 

T6    *LSL 

10 

W  e' 

*  tc' 

'2  i 

le  hotrvbre 

"■2 

*b' 
I 

B' 

100 
31* 

85" 

+ 

l3dc  ptohs 

oi 

£ 

At  chrome 

»5 

= 

,5dts  9  rjhje* 

•1  |     3     ] 

065  J*  3 

RCL 

15 

E 

"expritnt 

«    !      STO  1 

1     OO 

o 

r5 

■*» 

'Vht  it 

0  o 

o 

105 

°t 

2 

Ia4ysttmc 

"■Mil  o«            £      t 

S"S 

* 

75- 

- 

"clCCtlT*^! 

o        5 

ol 

i 

"Lai. 

FUJI   f  l«Bi 

ol    I        1 

U70 

55 

IS" 

E 

E 

0 

if    ,    *IM6 

Si 

*rtr> 

<?* 

INV 

' 

l5Joi     a  ■ 

<H 

»LBL 

"■c' 

RCL 

no 

99i 

Si 
S3 

EE 

c 



^ttlisef 

075 

.1.8  . 
43 

*c' 

j 

l~s 

Texas  Instruments 

« 

°1  i      1    . 

00 

o 

Example  of  Play 


Play  Instructions 


4. 


Load  in  the  play  card  both  A  and  B  sides 
Initialize:  *fix  0  *CMs  *rset 
Enter  the  starting  position:  For  each  non- 
empty row,  input  its  number,  n,  (1  <  n  <  9) 
and  press  B;  then  input  the  number  of 
pawns,  xn,  (0  <  xn  <  1023)  and  press  A. 
To  play  against  the  SR-52,  input  the  num- 
ber, n,  of  the  row  you  have  altered  and 
press  B;  then  input  the  number  of  pawns 
that  remain  in  this  row  and  press  C. 
To  begin  a  new  game  go  to  line  2  above. 


I  hope  that  such  programs  will  encourage 
Texas  Instruments  to  create  a  European 
SR-52  Users  Club.  Many  people  are  for  sure 
waiting  for  personal  computer  system  dealers 
in  Europe." 


4. 

PR- 

PR 

Starting 
Position 

2- 

PR" 

PR"" 

2- 

PR" 

PF   " 

Player 

t. 

PF 
PR 

SR-52 
Replies 

I.    L 

0      PR" 
PF  "" 

Player 

n'; 

PR" 

PF:"" 

SR-52 
Replies 

2. 

0       F  F "" 
PF  "" 

Player 

l. 

PF'"" 
PR"" 

0       PF'"' 

SR-52  Wi 

ns 

PF  "' 

91 


BITS.  BYTES 
&  BALONEY! 

For  all  of  you  non-aficionados  of  the  Computer 
Art.  .  .  . 

BIT  —  an  electrical  signal  or  logic  level  (like 
the  zero  or  one  of  the  Binary  numbering  system) 
—  Motorola's  M6800  is  an  8-bit  MPU. 

BYTE  —  a  set  of  eight  electrical  signals,  or 
logic  levels  (bits)  —  The  M6800  is  capable  of 
addressing  65,000  bytes  of  memory. 

BALONEY  —  the  state-of-the-MPU-art  that  says 
that  you  must  be  a  trained  computer  expert  to 
use  a  Microprocessor  in  a  practical  manner. 
More  and  more  "individuals"  are  becoming  self- 
styled  computer  'experts'  at  home,  with  their 
own  MPU  kits.  They  are  doing  things  that  others 
said,  "couldn't  be  done,"  (just  because  they 
forgot  to  ask). 

NOW'S  YOUR  CHANCE  —  for  only  $235.00  (plus 
$5.00  postage  and  handling)  you  can  order  your 
MOTOROLA  M68O0  MICROPROCESSOR  EVALUA- 
TION DESIGN  KIT,  directly  from  Motorola. 

IT'S  A  COMPLETE  KIT  —  the  MEK6800D2  Kit 
has  all  the  parts  necessary  to  complete  the  sys- 
tem and  get  "On  The  Air,"  except  for  the  Power 
Supply.  It  includes: 

o  (1)  MC6800  Microprocessing  Unit 

o  (2)  MCM6810  —  128  x  8  Static  RAMs 

o  (2)  MC6820L  —  PIA'S 

o  (1)  MC6830L  —  Program  ROM 

o  (1)  MC6850L  —  ACIA 

o  (2)  Printed  Circuit  Boards 

o  (1)  MC6871  —  Clock 

o  (1)  6-Digit  Seven  Segment  Display 

o  (1)  24-key  Keyboard 

o  Complete  kit  of  resistors,  capacitors, 
sockets,  circuits,  etc.  All  the  parts 
necessary  to  the  system,  but  the  Power 
Supply. 

THE  M6800  MPU  KIT  FEATURES 

o  24-key  Keyboard 

o  7  Segment  Display 

o  Cassette  Interface 

o  EROM  Expandable 

o  RAM  Expandable 

o  Wire  Wrap  Capability 

o  Parallel  &  Serial 

o  Interface  Capability 

o  Single  5-Volt  Supply  Required 

o  Layout  on  Boards 

o  Documentation 


IF  YOU'RE  READY  FOR 
A  MICROPROCESSOR 
-  THE  M6800  IS 
READY  FOR  YOU! 

Send  your  order  in  today 
for  one  of  the  most 
powerful  MPU  Kits  on 
the  market.  Fill  in  the 
order  form  below  and 
mail  it  with  your  check 
to: 

MOTOROLA 
MPU  KIT  SALES 
Department  B 
P.O.  Box  27605 
Tempe,  AZ.  85282 


I  have  enclosed  $235.00  plus  $5.00  shipping  and 
handling  (add  applicable  state  and  local  taxes)  in 
check  or  money  for  each  MEK6800D2  Micro- 
processor Design  Kit  II.    Please  send Kit(s). 

NAME 


ADDRESS. 
CITY 


STATE . 


ZIP  _ 


Please  print  clearly  —  Make  checks  payable  to 
Motorola  Inc. 

©MOTOROLA 
Semiconductor  Products  Inc. 


Circle  6  on  inquiry  card. 


A  Machine  Code 
Relocator  for  the  8080 


When  it  became  necessary 
to  insert  a  routine  between 
locations  x  and  x+1  in 
memory,  I  found  myself 
with  two  miserable  op- 
tions for  manual  patches. 


Leor  Zolman 
362  Memorial  Dr 
Cambridge  MA  02139 


Many  microcomputer  hobbyists  pass 
through  an  early  stage  in  the  development  of 
their  systems  where  machine  language  is  the 
only  mode  available  for  programming.  My 
system  configuration  at  that  point  included 
an  IMS Al  mainframe  and  4  K  memory,  a 
VDM-I  video  driver  and  monitor,  and  a 
Tarbell  cassette  interface.  The  big  problem 
when  programming  something  like  LIFE  for 
the  VDM  in  machine  language  occurs  when 
it  becomes  necessary  to  insert  a  routine  (call 
it  routine  y)  between  locations  x  and  x+1  in 
memory.  I  found  myself  with  two  miserable 
options  open: 

1.  Replace  three  or  so  bytes  (the  exact 
number  depending  on  where  the  new 
instruction  begins,  on  byte  3,  4,  or  5) 
with  a  patch  to  routine  y,  placed 
somewhere  else  in  memory,  then  re- 
store the  lost  bytes  at  the  end  of 
routine   y  and  jump  back  to  location 


x+4,  or  so.  This  is  not  exactly  ideal. 
2.  Manually  relocate  the  program  from 
location  x+1  on  down  until  the  end 
of  the  program  (unless  you  left  plenty 
of  NOPs  to  handle  just  such  a  situation 
—  then,  when  you're  all  finished, 
you're  left  with  a  bunch  of  useless 
NOPs!)  to  make  room  for  routine  y. 
This  involves  writing  the  whole  thing 
out  on  paper  first  then  toggling  it  in. 
Once  again,  far  from  optimal. 

My  solution  to  this  dilemma  was  to  write 
a  machine  language  program  which  performs 
the  second  type  of  relocation  above  quickly 
and  painlessly  when  given  just  11  bytes  of 
relocation  data  as  shown  in  table  I . 

The  program,  which  I  call  the  "reloca- 
tor," performs  its  duty  in  two  phases. 
Phase  1  simply  takes  the  block  whose  first 
address  is  a,  and  whose  last  address  is  b,  then 
transfers  it  as  is  to  the  area  beginning  with 


About  the  Author:  Leor 
Zolman  has  been  pro- 
gramming for  four  years, 
including  such  applications 
as  medical  graphics  for 
Cedars  of  Lebanon  Hospi- 
tal in  his  hometown  of  Los 
Angeles.  He  is  currently 
working  on  a  2  K  resident 
monitor  for  the  8080,  and 
characterizes  himself  as  a 
BASIC  games  enthusiast. 
Mr  Zolman  is  1 7  years  old 
and  a  freshman  at  Ml  T. 


Number 

Label 

of  Bytes 

Address 

2 

ODDD, 

a 

ODDE 

b 

2 

ODDF, 

0DE0 

2 

0DE1, 

c 

0DE2 

d 

2 

0DE3, 

0DE4 

2 

0DE5, 

e 

0DE6 

0DE7 


Comments 

First  address  of  block  to  be  relocated 

Last  address  of  block  to  be  relocated 

Destination  address  (ie:  where  the  byte  at  location  a  should  go) 

First  address  to  have  references  fixed 

Last  address  to  have  references  fixed 

00  =  fix  references  only 
Function  select:      01  =  move  block  and  fix  references 
02  =  move  block  only 


Table  I:  These  six  key  pieces  of  information  must  be  entered  into  the 
locations  shown  (beginning  at  hexadecimal  ODDD  for  listing  I )  before 
relocation  can  be  performed. 


92 


address  c.  That's  it  for  phase  I.  If  the  func- 
tion select  byte  is  equal  to  02,  then  the 
relocator  quits  here  and  goes  into  an  infinite 
loop  which  shows  up  as  a  known  pattern  in 
the  lights  of  an  Altair  or  IMSAI  front  panel. 
This  is  an  indicator  of  the  end  of  execution. 

Phase  2  is  the  tricky  part.  All  addresses 
(meaning  all  2  byte  operands  of  3  byte 
instructions)  which  fall  between  items  a  and 
b  above  (inclusive)  must  have  added  to  them 
the  distance  (number  of  bytes)  which  the 
block  was  moved.  This  value  is  easily  com- 
puted by  the  expression  c-a.  For  example, 
if  a  ten  byte  block  was  moved  from  starting 
location  10  to  decimal  starting  location  75, 
then  the  value  65  must  be  added  to  any  2 
byte  operand  in  the  program  having  a  value 
from  10  to  20  inclusive. 

The  purpose  of  items  d  and  e  in  the 
relocation  data  is  to  tell  the  relocator  where 
it  must  look  for  such  operands  (references), 
so  that  they  may  be  altered  or  "fixed" 
accordingly.  Since  the  references  may  lie 
anywhere  within  the  program  (not  necessar- 
ily just  within  the  relocated  block)  d  should 
be  set  equal  to  the  very  first  location  of  the 
program,  and  e  should  be  set  to  the  last.  The 
exception  to  this,  which  occurs  when  a  data 
block  lies  in  the  way,  will  be  covered  later. 
[To  avoid  the  exception,  the  "good"  pro- 
gramming practice  of  keeping  data  separate 
from  executable  code  is  highly  recom- 
mended .  .  .CH/  Phase  2  may  be  executed 
without  phase  1  if  the  function  select  is  set 
toO. 

The  beauty  of  this  program  becomes 
apparent  when  a  friend  having  32  K  in  his 
machine  hands  you  a  tape  of  a  program  he 
wrote  residing  somewhere  up  in  the  sky  (or 
so  it  seems  to  you,  with  only  4  K)  and  you 
would  like  to  run  it.  All  you  have  to  do  in 
this  case  is: 

1.  Load  in  the  relocator 

2.  Load  in  your  friend's  program  in  any 
free  memory  space 

3.  Feed  the  relocator  this  relocation 
data: 

a.  the    original    first    address    of    the 
program 

b.  the    original     last    address    of    the 
program 

c.  the    location   where  you   loaded   it 
(first  location) 

d.  same  as  c 

e.  c    +    length    of  the    program    (this 
equals  c  +  b  —  a  +  1) 

f.  00  (function  select  to  fix  references 
only) 

4.  Examine  the  start  of  the  relocator  and 
hit  run.  When  the  LEDs  stop  flickering 
(about  I  second  for  each  1  K  between 


Listing  I:  A  relocation  program  for  use  on  8080a  systems.  The  program  takes 
any  existing  program  and  transfers  it  to  any  other  location  desired  in  memory 
with  a  minimum  of  fuss.  Throughout  this  program,  endless  loops  are  used  to 
signal  the  end  of  major  operations.  These  loops  will  cause  the  data  LEDs  to 
output  a  constant  light  pattern  on  the  front  panel  (line  0D37  for  example).  If 
desired,  the  program  can  be  modified  so  thai  it  jumps  to  any  other  desired 
routine  at  these  points,  or  returns  to  your  monitor.  All  numbers  followed  by 
an  H  are  considered  to  be  hexadecimal  in  this  program  (eg:  02H  in  line 
0D35).  Interestingly  enough,  while  the  program  resides  at  starting  location 
0D00,  it  is  perfectly  capable  of  relocating  itself! 


Hexadecimal 

Address 

Code 

Label 

Op 

Operand 

Commentary 

ODOO 

31 

FF 

OD 

LXI 

SP,  STACK 

03 

2A 

DF 

0D 

LHLD 

SBOT 

get  b; 

OS 

54 

MOV 

D,H 

move  b  to  DE; 

07 

5D 

MOV 

E.L 

08 

2A 

E1 

OD 

LHLD 

DTOP 

get  c; 

OB 

44 

MOV 

B,H 

move  c  to  BC; 

oc 

4D 

MOV 

C,L 

0D 

2A 

DD 

0D 

LHLD 

SSTRT 

get  a; 

10 

C5 

PUSH 

B 

save  c; 

11 

CD 

A9 

0D 

CALL 

COMPH 

complement  HL; 

14 

19 

DAD 

D 

HL  :=  b-a; 

15 

44 

MOV 

B,H 

move  to  BC; 

16 

4D 

MOV 

C.L 

17 

E1 

POP 

H 

get  c; 

18 

09 

DAD 

B 

set  HL  equal  to  bottom  of 
destination  area; 

19 

3A 

E7 

0D 

LDA 

FUNK 

get  f; 

1C 

B7 

ORA 

A 

if  f=0,  then  skip  phase  1 ; 

1D 

CA 

3A 

OD 

JZ 

STEP  3 

20 

1A 

X 

LDAX 

D 

get  byte  from  source; 

21 

77 

MOV 

M,A 

store  byte  at  destination; 

22 

78 

MOV 

A,B 

23 

B7 

ORA 

A 

24 

C2 

2C 

0D 

JNZ 

Y 

27 

79 

MOV 

A,C 

28 

B7 

ORA 

A 

29 

CA 

32 

0D 

JZ 

TEST 

if  move  is  over,  then  go  to 
TEST; 

2C 

2B 

Y 

DCX 

H 

else  keep  a  goin'; 

2D 

IB 

DCX 

D 

0D2E 

OB 

DCX 

B 

2F 

C3 

20 

0D 

JMP 

X 

32 

3A 

E7 

0D 

TEST 

LDA 

FUNK 

move  is  now  over; 

35 

FE 

02 

CPI 

02  H 

37 

CA 

37 

0D 

DONE 

JZ 

DONE 

if  move  only,  then  go  to 
DONE,  (this  is  endless  loop) 

3A 

E5 

STEP  3 

PUSH 

H 

save  c; 

3B 

62 

MOV 

H,D 

get  a; 

3C 

6B 

MOV 

L,E 

place  a  in  HL; 

3D 

CD 

A9 

0D 

CALL 

COMPH 

40 

Dl 

POP 

D 

41 

19 

DAD 

D 

DE  :=c-a; 

42 

22 

E8 

0D 

SHLD 

DISP 

this  is  the  displacement; 

45 

2A 

E3 

0D 

LHLD 

START 

get  d; 

48 

2B 

DCX 

H 

49 

23 

LOOP 

INX 

H 

4A 

EB 

XCHG 

4B 

2A 

E5 

0D 

LHLD 

STOP 

4E 

EB 

XCHG 

4F 

7B 

MOV 

A,E 

50 

95 

SUB 

L 

51 

7A 

MOV 

A,D 

52 

9C 

SSB 

H 

53 

DA 

53 

0D 

DONE2 

JC 

DONE2 

if  reference  fixing  is  com- 
pleted, then  go  to  DONE2. 
(this  is  endless  loop); 

56 

06 

1A 

MVI 

B,1  AH 

get  3  byte  op  code  count; 

58 

11 

81 

0D 

LXI 

D.TABLE3 

address  of  3  byte  op  table; 

0D5B 

1A 

CHEK3 

LDAX 

D 

5C 

BE 

CMP 

M 

5D 

CA 

7B 

OD 

JZ 

ACT 

if  next  byte  in  memory  is 
start  of  a  3  byte  operation, 
go  to  ACT; 

60 

05 

DCR 

B 

else  try  next  op; 

61 

13 

INX 

D 

62 

C2 

5B 

0D 

JNZ 

CHEK3 

if  there  are  more  3  byte 
ops  left  to  check,  go 
back  to  CHEK3; 

93 


Listing  J,  continued: 


Hexadecimal 


Address 

Code 

Label 

Op 

Operand 

Commentary 

65 

06 

12 

MVI 

B.12H 

else  perform  same  compari 
with  table  oi  2  byte  ops; 

67 

11 

CB 

OD 

LXI 

D.TABLE2 

6A 

1A 

CHEK2 

LDAX 

D 

6B 

BE 

CMP 

M 

6C 

CA 

77 

00 

JZ 

SKIP 

6F 

05 

DCR 

B 

70 

13 

INX 

D 

71 

C2 

6A 

OD 

JNZ 

CHEK2 

if  there  are  more  2  byte 
ops  left  10  try,  go  back 

74 

C3 

49 

OD 

JMP 

LOOP 

10  CHEK2; 

77 

23 

SKIP 

INX 

H 

else  must  be  1  byte, 

78 

C3 

49 

OD 

JMP 

LOOP 

ignore  n,  skip  ihe 
operand  ol  a  2  byte 
instruction; 

7B 

E5 

ACT 

PUSH 

H 

a  3  byte  operation; 

7C 

2A 

DF 

OD 

LHLD 

SBOT 

get  b; 

7F 

54 

MOV 

D.H 

move  b  to  DE; 

80 

5D 

MOV 

E,L 

81 

2A 

DD 

OD 

LHLD 

SSTRT 

get  a; 

84 

44 

MOV 

B,H 

move  a  to  BC; 

85 

4D 

MOV 

C,L 

86 

E1 

POP 

H 

87 

23 

INX 

H 

HL  points  to  B2-  B3; 

88 

7B 

MOV 

A,E 

89 

96 

SUB 

M 

0D8A 

23 

INX 

H 

8B 

7A 

MOV 

A,D 

8C 

9E 

SBB 

M 

8D 

DA 

49 

OD 

JC 

LOOP 

if  operand  is  >  b,  ignore  it. 

90 

2B 

DCX 

H 

91 

7E 

MOV 

A,M 

92 

91 

SUB 

C 

93 

23 

INX 

H 

94 

7E 

MOV 

A,M 

95 

98 

SBB 

B 

96 

DA 

49 

OD 

JC 

LOOP 

if  operand  is  <  a,  ignore  it, 

99 

2B 

DCX 

H 

HL  points  to  B2--B3  again 

9A 

EB 

XCHG 

9B 

2A 

E8 

OD 

LHLD 

DISP 

get  displacement  value; 

9E 

EB 

XCHG 

9F 

7E 

MOV 

A.M 

add  to  B2  -  B3 ; 

A0 

83 

ADD 

E 

A1 

77 

MOV 

M,A 

A2 

23 

INX 

H 

A3 

7E 

MOV 

A.M 

A4 

8A 

ADC 

D 

A5 

77 

MOV 

M.A 

A6 

C3 

49 

OD 

JMP 

LOOP 

go  look  for  more  3  byte 
operations; 

A9 

7C 

COMPH 

MOV 

A,H 

complement  H  L; 

AA 

2F 

CMA 

AB 

67 

MOV 

H,A 

Hexadecimal 

Address 

Code 

Label 

Op 

Operand 

Commentary 

ODAC 

7D 

MOV 

A,L 

AD 

2F 

CMA 

AE 

6F 

MOV 

L,A 

AF 

23 

INX 

H 

BO 

C9 

RET 

d  and  e)  hit  stop.  You  should  see  C3  in 
the  data  LEDs  of  an  Altair  or  IMSAI. 

That's  it!  Now  the  program  should  run 
right  where  you  loaded  it,  unless  one  of  the 
following  problems  occurs. 

Relocating  to  a  Lower  Memory  Location 

The  block  move  (phase  1)  is  clone  tail 
first.  For  a  block  of  length  n,  then,  byte  n  of 
the  source  would  be  transferred  to  byte  n  of 
the  destination,  then  byte  n—  I  would  be 
moved,  then  n— 2,  etc,  up  to  byte  1.  There- 
fore, relocating  forward  into  higher  memory 
always  works,  but  relocating  backward  into 
lower  memory  fails  if  the  difference  between 
the  source  and  destination  addresses  is  not 
greater  than  the  block  length.  In  such  a  case, 
say  moving  a  block  at  b  to  location  a,  an 
intermediate  relocation  must  be  done  from  b 
to  c  (where  Ic— al  >  length  of  block),  and 
then  a  second  relocation  must  be  performed 
from  c  to  a.  Note:  I  could  have  had  the 
relocator  check   the  direction   of  the  move 


Hexadecimal 

Address 

Code 

Label 

Commentary 

0DB1 

01 

11 

21 

TABLE3 

table  of  3  byte  op  codes; 

B4 

22 

2A 

31 

B7 

32 

3A 

C2 

BA 

C3 

C4 

CA 

BD 

CC 

CD 

D2 

CO 

D4 

DA 

DC 

C3 

E2 

E4 

EA 

C6 

EC 

F2 

F4 

C9 

FA 

FC 

CB 

06 

OE 

16 

TABLE2 

table  of  2  byte  op  codes; 

CE 

1E 

26 

2E 

D1 

36 

3E 

C6 

04 

CE 

D3 

D6 

07 

DB 

DE 

E6 

DA 

EE 

F6 

FE 

DD 

00 

00 

SSTRT 

source  start           a; 

DF 

00 

00 

SBOT 

source  bottom      b; 

E1 

00 

00 

DTOP 

destination            c; 

E3 

00 

00 

START 

start  phase  2         d; 

E5 

00 

00 

STOP 

end  phase  2           e; 

E7 

01 

FUNK 

function  select     f; 

E8 

00 

00 

DISP 

displacement  (program  definedl; 

Figure  I:  A  special  case  in  program  reloca- 
tion. The  program  block  a  thru  b  is  to  be 
moved  to  location  c,  but  the  integrity  of  the 
data  block  from  f  thru  g  must  be  preserved. 
The  technique  in  this  case  is  to  change  pro- 
gram references  in  two  passes:  up  to,  but 
not  including,  the  data  block,  and  then  after 
the  block.  Locating  all  data  at  the  end  of 
programs  will  of  course  prevent  this  type  of 
problem. 


source  block 


data  area 


destination  block 


start  of  program 


end  of  program 


94 


and  proceed  either  tail  or  head  first  accord- 
ingly, but  the  program  is  long  enough  to 
cause  toggling  headaches  as  it  is. 

Problems  with  the  LXI  Instruction 

LXI  instructions  in  which  the  operand 
happens  to  equal  an  address  in  the  block 
between  a  and  b  but  doesn't  actually  refer  to 
an  address  (LXI  H,  0000  is  a  good  example) 
present  a  problem.  If  you  are  in  the  process 
of  writing  the  program  try  to  use  LHLD 
instead  (or,  if  worse  comes  to  worse,  LHLD 
with  MOV  B,  H  and  MOV  C,  L  for  LXI  B, 
xxxx)  and  set  aside  two  bytes  of  storage  at 
the  end  of  the  program  for  the  data. 

If  the  program  was  not  written  by  you,  or 
if  you  really  want  to  use  LXI,  then  the  only 
alternative  is  to  go  through  your  listing  (if 
you  have  one!)  and  change  the  locations  in 
question.  But  this  problem  never  caused  me 
much  trouble. 

Data  Block  Problems 

Avoid  relocating  data  whenever  possible. 
If  relocation  is  necessary  do  not  try  passing 
through  it  with  phase  2.  Here  is  an 
example  of  how  to  handle  data  areas:  In  a 
program  residing  from  location  d  to  location 
e,  a  block  starting  at  a  and  ending  at  b  is  to 


be  moved  to  location  c.  As  a  complication,  a 
data  block  resides  from  location  f  to  loca- 
tion g.  See  figure  1  for  a  memory  map  of 
this  situation.  The  relocation  should  be 
performed  in  two  runs  of  the  relocator  as 
follows: 

Run  1 .  Give  relocation  data  of  a,  b,  c,  d, 
f-1 ,  1 .  This  moves  the  block  and 
fixes  all  references  up  to  loca- 
tion f,  the  start  of  the  data  area. 

Run  2.  Give  data  of  a,  b,  c,  g+1 ,  e,  0. 
This  simply  fixes  up  the  remain- 
ing references  after  skipping  the 
data  area. 

[Here  again  the  practice  of  keeping  data 
separate  from  executable  code  should  allev- 
iate this  problem.  .  .CH/ 

In  the  listing  provided  the  relocator  re- 
sides at  locations  0D00  to  0DFF,  but  it  is 
self-relocatable,  of  course.  The  six  key  items 
of  relocation  data  must  be  set  up  at  loca- 
tions 0DDD  to  0DE7  as  shown  in  table  1, 
with  the  low  byte  coming  first  numerically 
in  each  case. 

I  sincerely  hope  that  this  program  repays 
your  understanding  and  toggling  efforts 
with  a  vast  reduction  in  relocation 
frustration.  ■ 


The  value  of  this  program 

becomes  apparent  when  a 

friend  having  32  K  on  his 

machine  hands  you  a  tape 

of  a  program  he  wrote 

residing  somewhere  up  in 

the  sky  (or  so  it  seems  to 

you,  with  only  4  K),  and 

you  would  like  to  run  it. 


THE  SAME  8K  STATIC  MEMORY  KITS 
YOU'VE  PURCHASED  IN  THE  PAST,  NOW  ASSEMBLED  AND  TESTED 


79G  HAMPSHIRE   RD..A+  B 
WESTLAKE  VILLAGE.  CA  91361 
TEL:  (805)497-0733 


3  CT APHC  inc. 


'FAST  8"  $275 


SPECIFICATIONS: 
Access  Ttme-. 


Power  Consumption: 

Address  Lines: 

Memory  Protect: 

Power  Regulators: 

Address  Select: 

Output  Disable. 
Board: 


ABY"  $265 


"Fast  8'"250  ns,  Fairchild  : 
2102LHPC 

"8K  BABY"  450  ns,  Fairer** 
2102L1PC 
No  Wait  States 
"Fast8",1.6Aat+5V 
"8K8ABY".13Aat+5V 
Schmltt  triggers  tor  buf- 
fering 

Hardware  8K 
4ea,7805 

Dip  switch  accessable  from 
top  of  board.  No  need 
to  remove  board  to  re- 
locate. 

Permits   use   with   trans- 
parent loader 
Quality  G-IO  material  with 
solder  mask  both  sides 


Not  affiliated  with  Vector  General,  Inc. 


95 


Circle  9  on  inquiry  card. 


BASICally  BASIC 


(an  informal  introduction  to  BASIC) 


Robert  Baker 
15  Windsor  Dr 
Atco  l\IJ  08004 


The  BASIC  programming  language  was 
developed  in  the  early  1960s  at  Dartmouth 
College  as  a  conversational,  problem  solving 
language.  It  has  wide  applications  in  scien- 
tific, business,  and  educational  environments 
since  it  can  be  used  to  solve  both  simple  and 
complex  mathematical  problems  from  the 
user's  terminal.  Due  to  the  small  number  of 
clearly  understandable  commands  and  pro- 
gramming statements  required,  BASIC  is  one 
of  the  simplest  languages  to  learn  and  use. 

Like  most  programming  languages, 
BASIC  can  be  divided  into  two  sections: 
elementary  statements  for  simple  programs 
and  more  advanced  techniques  and  state- 
ments for  complicated  problems.  As  an 
introduction  to  BASIC,  this  article  deals 
primarily  with  the  elementary  functions  and 
statements  recognized  by  BASIC  as  it  is 
most  frequently  implemented,  with  program 
examples  included  to  illustrate  their  applica- 
tions. Several  operating  commands  and  a  few 
of  the  more  advanced  features  found  in 
some  BASIC  systems  will  also  be  mentioned. 

The  specific  features  available  on  each 
computer  system  will  differ  slightly,  forming 
many  different  dialects  of  the  BASIC  lan- 
guage. When  writing  programs  to  be  com- 
patible with  different  systems,  it's  general 
practice  to  use  only  elementary  statements 
common  to  most  forms  of  BASIC.  The 
BASIC  programming  manual  or  equivalent 
documentation  should  always  be  consulted 
to  verify  the  commands  and  statements 
actually  available  and  the  conventions  used 
for  a  particular  system. 

BASIC  Operating  Commands 

After  gaining  access  to  BASIC  in  what- 
ever manner  required  by  a  particular  system, 
BASIC  will  normally  respond  with  a  message 
indicating  it  is  waiting  for  a  command.  The 


various  operating  coi'nmands  depend  on  the 
BASIC  implementation  used.  Several  of  the 
commands  usually  available  are: 

OLD:  Load  a  previously  saved  pro- 

gram. BASIC  may  request  the 
old    program   (or   file)    name, 
depending  on  the  system. 
NEW:  Enter   (or  write)   a   new  pro- 

gram     from      the      console. 
BASIC    may    request   a   pro- 
gram     (or     file)     name     de- 
pending on  the  system. 
LIST:  Print  the  current  program  on 

the    console.    Some    systems 
may  allow  printing  individual 
lines  or  groups  of  lines. 
RUN:  Compile  and  execute  the  cur- 

rent program.   Some  systems 
may  allow  starting  at  a  parti- 
cular line. 
SAVE,  RESAVE,  or  REPLACE 

Save  the  current  program. 
UNSAVE,  PURGE,  or  SCRATCH 

Delete  the  current  program. 
BYE,  GOODBYE,  or  SYSTEM 
Exit  BASIC. 
In    addition,    some   systems    may   accept 
abbreviated     commands    or     offer    various 
editing  commands   to   possibly  delete  lines, 
resequence   line   numbers,  etc.  Most  BASIC 
interpreters  will  usually  type  READY  when 
waiting    for    an    operating   command.    New 
lines   are   inserted   by   simply   typing  a  line 
number  followed  by  the  desired  instruction 
terminated    with    a    carriage    return.    Line 
numbers  and  individual  instructions  will  be 
discussed  later. 

Fundamental  Programming  Concepts 

What  does  it  take  to  represent  a  program 
in  a  high  level  language  such  as  BASIC?  As 


96 


SATISFY  YOUR  APPETITE 

FOR  COMPUTER 
KNOWLEDGE 


WITH 
SAMS  COOKBOOKS 


Send  for  the  cookbooks  and 
manuals  described.  Increase 
your  knowledge  of  minicomput- 
ers, microprocessors,  computer 
technology,  related  computer 
circuits  and  peripheral  equip- 
ment. Be  satisfied  or  your 
money  back. 


How  To  Buy  &  Use 
Minicomputers 
&  Microcomputers 

By  William  Barden,  Jr. 
This  manual  gives  you  the 
basics  of  minicomputers  and 
microcomputers.  Explains 
their  hardware  and  software, 
the  peripheral  devices  available 
and  various  programming  languages 
and  techniques.  Allows  you  to  decide  which 
system  is  best  for  your  needs.  240  pages; 
softbound.  No.  21351     $9.95 


Microcomputer  Primer 

By  Mitchell  Waite  and 
Michael  Pardee 
Written  for  the  beginner  in  the 
computer  field.  All  the  basic 
concepts  and  characteristics 
of  microcomputers  are 
explored.  The  easy  to  under- 
stand language  prepares  you 
for  further  study.  224  pages; 
softbound.  No.  21404 
$7.95 


CMOS  Cookbook 

By  Don  Lancaster 
Your  complete  guide  to  the 
understanding  and  use  of 
Complementary  Metal-Oxide- 
Silicon  integrated  circuits. 
Gives  usage  rules;  power 
supply  design  examples; 
applications;  information  on 
breadboards,  testing,  tools, 
and  interface.  Detailed 
coverage  of  logic  and  more. 
416  pages;  softbound.  No.  21398    $9.95 
The  Big  CMOS  Wall  Chart  35"  x  23" 
Big,  readable  wall  chart  provides  essential 
information  on  CMOS  devices.  No.  21399    $2.95 


Dl 


m 


POUTER 

Sag 


Computer  Dictionary  and 
and  Handbook 

By  Charles  J.  Sippi  & 
Charles  P.  Sippi 
At  your  finger  tips  you  have 
more  than  22,000  definitions, 
acronyms,  and  abbreviations 
dealing  with  the  field  of  data 
processing.  Also  13 
appendices  cover  a  myriad  of 
computer  related  subjects. 
784  pages;  hardbound.  No. 
20850    $19.50 


TTL  Cookbook 

By  Donald  E.  Lancaster 
You'll  discover  what 
Transistor-Transistor  Logic  is, 
how  it  works  and  how  to  use 
it.  Discusses  practical  digital 
applications.  You'll  learn  to 
build  TTL  systems  that 
entertain,  test  and  train.  336 
pages;  softbound  No.  21035 
$8.95 
User's  Guide  to  TTL  (Wall  Chart)  35"  x  23" 
Shows  you  needed  information  on  TTL 
devices  at  a  glance.  No.  20180    $2.50 


o 

o 


TV  Typewriter  Cookbook 

By  Don  Lancaster 
Your  comprehensive  guide  to 
low  cost  television  display  of 
alpha-numeric  and  graphics 
data  for  microprocessor 
systems,  word  processing,  TV 
titling  and  video  games. 
Covers  configurations, 
memories,  keyboards, 
techniques  and  much  more. 
256  pages;  softbound.  No. 
21313    $9.95 


Send  your  order 
Today! 

Send  books  and/or  wall  charts  checked  below, 

$ enclosed*.  I  understand  that,  if  not 

completely  satisfied,  I  may  return  my  order 
within  10  days  for  a  full  refund. 

□  21351  □  21399  □  21080  □  20969 

□  21404  □  20850  □  21313  [J   20715 


J  21398   F]  21035    □  21168 

'Include  sales  tax  where  applicable. 
Canadian  prices  slightly  higher. 


ad; 


Active-Filter  Cookbook 
By  Don  Lancaster 

Dynamic  coverage  of  active 
filters.  What  they  are  and  how 
to  use  them.  Learn  to  build 
and  apply  them  to  audio 
equalizers,  speech  therapy, 
psychedelic  lighting  and  more. 
240  pages;  softbound. 
No.  21168     $14.95 


:t 


NAME 

please  print 

ADDRESS 

o 

1— 

CITY 

"0 

STATE 

ZIP 

o 

c 

a 


Howard  W.  Sams  &  Co.,  Inc. 

4300  West  62nd  Street 
Indianapolis,  Indiana  46206 


IC  Op-Amp  Cookbook 
By  Walter  G.  Jung 
Now  one  book  gives  you 
in-depth  exposure  to  IC  op 
amps.  Covers  theory  and  over 
250  practical  circuit  applica- 
tions. 592  pages;  softbound. 
No.  20969     $12.95 


RTL  Cookbook 

By  Donald  E.  Lancaster 
You  will  learn  the  how  and 
why  of  Resistor-Transistor 
Logic.  Obtain  useful  design 
information  and  many  digital 
applications.  240  pages; 
softbound.  No.  20715     $5.75 


Circle  26  on  inquiry  card. 


irator 

Exampl 

e 

Description 

+ 

A+B 

Add    A    and    B 

+ 

+  A 

A    is   positive 

- 

A-B 

Subtract    B    from    A 

- 

-A 

A    is    negative 

* 

A*B 

Multiply    A   times    B 

/ 

A/B 

Divide    A   by    B 

T 

*  * 

AI  B 
A»*B 

! 

A   to    the    power    B 

Table  I:  Arithmetic  Operators.  A  typical 
BASIC  interpreter  incorporates  an  arith- 
metic expression  parsing  algorithm  which 
recognizes  the  usual  add,  subtract,  multiply, 
divide  and  exponentiate  operations.  Pre- 
cedence is  described  in  the  text,  and 
parentheses  are  used  for  explicit  ordering  of 
operations. 


with  any  computer  language,  BASIC  uses 
certain  notations  for  numbers,  variables  and 
operations. 

Numbers 

The  computer  can  compute  the  value  of 
expressions  like  12/7  or  SQR(9);  but  while 
they  use  numbers,  they  arc  not  considered 
numbers  and  may  not  be  used  in  lists  of 
constant  data.  Numbers  are  self  defining 
values  which  are  generally  expressed  in 
decimal  form  and  may  be  positive  or  nega- 
tive (ie:  3  or  -2.79.  Most  BASIC  languages 
will  also  allow  scientific  notation  for  num- 
bers, where  the  letter  "E"  is  used  to  signify 
10  raised  to  a  power.  A  number  expressed  in 
this  form,  such  as  aEb,  would  indicate  "a" 
times  10  raised  to  the  power  "b".  Thus, 
0.125  may  be  expressed  as  0.125E0  or 
125E-3,  and  1000  may  be  written  as  1E3  or 
10E2.  With  scientific  notation,  a  number 
must  always  be  present  on  both  sides  of  the 
letter  "E",  and  may  be  either  positive  or 
negative.  There  is  usually  a  maximum  num- 
ber of  digits  allowed  with  either  number 
notation  depending  on  the  particular  com- 
puter and  BASIC  implementation. 

Variables 

Simple  numeric  variables  arc  generally 
specified  by  any  single  letter  or  any  letter 
followed  by  a  single  digit.  Thus,  E7  would 
be  interpreted  as  a  variable  along  with  A,  B, 
C2,  and  X0.  Certain  computer  systems  may 
allow  more  advanced  variable  labeling.  But  if 
you  expect  compatibility  with  other  BASIC 
systems,  it  is  best  to  use  this  restricted, 
simpler  form. 

Numeric    variables    represent    a    number 


with  a  value.  The  value  is  assigned  to  the 
variable  by  either  LET  or  READ  statements. 
An  assigned  value  will  not  change  until  the 
next  LET  or  READ  statement  which  ex- 
plicitly changes  the  variable.  In  the  typical 
BASIC  interpreter,  all  numeric  variables  are 
initially  set  equal  to  zero  before  a  program  is 
run.  It's  only  necessary  to  assign  an  initial 
value  to  a  variable  when  a  value  other  than 
zero  is  desired. 

Arithmetic  Operators 

Arithmetic  computations  in  a  language 
like  BASIC  arc  performed  by  evaluating 
single  line  formulas  similar  to  those  used  in 
standard  mathematical  calculations.  Any  of 
the  arithmetic  operators  listed  in  table  I 
may  be  used  to  write  a  desired  formula.  In 
computations  utilizing  multiple  operators, 
the  order  of  precedence  is  determined  by  a 
very  conventional  set  of  rules: 

1.  A  formula  inside  parentheses  is  evalu- 
ated before  the  parenthesized  quantity 
is  used  in  a  computation. 

2.  Normally,  an  operator  cannot  follow 
another  operator.  The  operators  +  and 
—  can,  however,  follow  the  operators 
*,  /,  t  or  **,  In  this  case,  the  +  or  - 
takes  precedence  over  the  leading 
operator  to  indicate  the  sign  of  a 
quantity. 

3.  Without  parentheses  in  a  formula,  ** 
and  t  take  precedence  over  *  and  /, 
which  take  precedence  over  +  and 

4.  With  only  *  and  /  operators  and  no 
parentheses,  BASIC  performs  the 
operations  from  left  to  right  in  the 
order  they  arc  read. 

5.  With  only  +  and  -  operators  and  no 
parentheses,  BASIC  performs  the 
operations  from  left  to  right  in  the 
order  they  are  read. 

The  following  examples  will  help  illustrate 
these  rules  and  how  a  BASIC  interpreter 
typically  executes  various  computations: 

B+3*A**2        «■  A    squared    times    3,   then 

added  to  B 
B+(3*A)**2     ♦»  Product    of   3    times  A   is 

squared,         then         added 

to  B 
(B+(3*A))**2*»  Product    of   3    times  A   is 

added   to   B   and   the   sum 

is  then  squared 
A/B/C  «*  Quotient     of     A     divided 

by      B     is     then     divided 

by  C 
A    B— C  **  C       is      subtracted      from 

the      result     of     B      sub- 
tracted from  A 
A#*2**3  <->  The    result    of   A    squared 

is  then  cubed 


98 


Extensys 
Corporation 


The  most  cost  effective 
products  for  your   |f 
microcomputer,      iff 

CGM77H 


JNlss^ 


*7"*^?1 


THE  RM64  MEMORY  BOARD  provides  the  most 
cost  effective  means  for  system  memory  addition  in  the   industry. 
The  board  is  S-100  bus  compatible  making  it  usable  in  over  a  dozen 
different  microcomputer  systems  including  ALTAI R  and  IMSAI  . 

It  comes  in  three  configurations:  32K,  48K  or  64K  bytes  and  is 
completely  assembled,  checked  out  and  burned  in  for  at  least  50  hours 
prior  to  shipment. This  complete  testing  procedure  enables  EXTENSYS 
to  provide  you  a  one  year  warranty  on  parts,  labor  and  materials 
(assuming  no  misuse  of  the  board  occurs). 

On  board  hardware  is  provided  for: 

Individual  memory  bank  address  selection  in  8I<  increments; 

Complete  dynamic  refresh  logic  without  loss  of  processing 
efficiency  while  programs  are  running; 

.     Board  select  logic  which  allows  more  than  one  64K  byte  board 
per  system; 

.     S-100  bus  compatibility  including  on-board  voltage  regulator; 

Memory  overlap  which  allows  memory  sharing  the  same  address 
space  to  coexist  in  the  same  system;  and 

.     Write  protection  in  16K  blocks 

THE  CGM77  COMPUTER  GRAPHICS  MACHINE    is  a  fully  tested 
system  that  provides  the  basis  for  developing  the  most  sophisticated 
video  graphics  imaginable.  The  CGM77  board  is  S-100  bus  compatible, 
making  it  usable  on  over  a  dozen  different  computer  systems.   The  only 
additional  components  needed  for  a  complete  video  graphics  system 
are  8K  bytes  of  RAM  interfaced  to  the  microcomputer  system.  The 
EXTENSYS  RM64-32K  RAM  board  is  ideally  suited  for  this. 


Special  control  panels  are  available  that  provide  universal  control 
for  interfacing  with  the  graphics  board.   Output  of  the  board  is  in  the 
form  of  composite  sync  that  can  be  used  directly  by  a  high  resolution 
video  monitor. 

The  heart  of  the  system  is  the  EXTENSYS  GRAPHICS  MACHINE. 
This  is  a  sophisticated  piece  of  software  developed  by  EXTENSYS  for 
the  rapid  implementation  of  video  graphics.  The  GRAPHICS 
MACHINE  permanently  resides  in  PROM  chips  that  are  part  of  the 
board  and  therefore  never  need  to  be  loaded.  The  GRAPHICS 
MACHINE   software  actually  transforms  the  microprocessor  into  a 
much  more  powerful  and  sophisticated  computer  whose  instruction 
set  is  ideally  suited  for  the  development  of  video  graphics  or  video 
games. 

Contact  your  local  computer  store       ___________ 

or  order  directly  from    EXTENSYS     |  _j _  B-l 


Please  place  my  order  for  the  following; 

QTY  DESCRIPTION  AMOUNT 

RM64-32K  byte  board  _  S  895  ea.  

RM64-48K  byte  board  @  $1195ea.  

RM64-64K  byte  boards  $1495  ea.  

CGM77   computer  graphics  

board  @  $  375  ea.  

Subtotal  

California  residents  add  m%  tax 

TOTAL     

Shipping  and  handling  prepaid  in  continental  United  Slates 

NAME    


extensys 

_____■_# co  r  po  rat  ion 
592  Wedded  Drive 
Sunnyvale,  California  94086 


lease  check  method  of  payment; 

Check  Enclosed 

, BankAmericard  No 

expiration  date  

Master  Charge  No.    

expiration  date  


ADDRESS- 
CITY 


.SIGNATURE: 


PHONEIINCLUDE  AREA  CODE)  _ 


Circle  27  on  inquiry  card. 


Arithmetic  Functions 

In  addition  to  the  five  arithmetic  opera- 
tions, a  fully  implemented  BASIC  inter- 
preter can  evaluate  several  standard  mathe- 
matical functions.  The  elementary  functions 
available  in  a  typical  BASIC  arc  listed  in 
table  2.  Any  valid  formula  may  be  substi- 
tuted for  X  in  all  of  the  functions.  More 
advanced  functions  are  often  available  and 
will  be  discussed  later.  Various  other  mathe- 
matical functions  may  be  available  de- 
pending on  the  individual  computer  system 
used.  Sometimes  extended  nonarithmetic 
functions  arc  also  made  available. 

Relational  Symbols 

When  it  is  necessary  to  compare  values, 
six  mathematical  symbols  of  relation  are 
used  in  IF  statements.  Some  systems  may 
use  the  alternate  written  expressions,  espe- 
cially when  the  terminals  do  not  have  the 
standard  symbols.  Table  3  lists  the  standard 
symbols  and  alternate  forms  of  relational 
operations. 

Line  Numbers 

In  any  BASIC  program,  each  statement 
must  include  a  line  number  as  mentioned 
earlier.  The  first  line  is  usually  numbered  10 
and  all  following  line  numbers  are  generally 
in  steps  of  10.  This  allows  insertion  of  extra 
statements  between  existing  lines  by  using  a 
line  number  between  the  two  lines  where  the 
statement  is  to  be  added.  New  lines  arc 
correctly  inserted  by  BASIC  by  using  the 
line  number  specified  with  each  statement. 
The  only  restriction  on  line  numbers  in  a 
program  is  that  each  line  number  must  be 
greater  than  the  preceding  line  number. 

Elementary  Programming  Statements 

The  elementary  statements  of  the  BASIC 
language  are  identified  by  the  first  word  of 
the  statement. 


Function 

Description 

SIN(X) 

Sine   of   X 

COS(X) 

Cosine   of   X 

TAN(X) 

Tangent   of   X 

COT(X) 

Cotangent   of   X 

ATN(X) 

Arctangent   of   X 

EXP(X) 

e   raised   to   the   power    X          (ex) 

LOG(X) 

Natural    logarithm   of   X             (1n    X) 

SQR(X) 

Square   root   of   X                        (   >/x~  ) 

ABS(X) 

Absolute   value   of    X                  (    IXI    ) 

X  is  usually  interpreted 
as  an  angle  expressed  in 
radians  on  most  systems. 


X    is   always    interpreted 
as   a    number. 


LET  Statement 

The  LET  statement  is  used  to  assign  a 
given  number  or  the  result  of  a  calculation 
to  a  particular  variable  or  group  of  variables. 
The  general  form  of  the  LET  statement  is: 

LET  [variable]  =  [formula]* 


*Any     item    shown    in    brackets    will     indicate    a 
general  form  of  an  argument,  such  as: 

[variable]  =  any  variable 

[line  number]  =  any  line  number 


Table  2:  Typical  BASIC  Mathematical  Functions.  The  usual  implementation 
of  a  full  BASIC  interpreter  provides  this  list  of  built-in  mathematical 
functions.  The  precision  and  range  of  numbers  depends  upon  the  details  of 
the  implementation  and  its  number  representation  internally. 


With  some  BASIC  implementations,  the 
word  LET  may  be  optional  in  the  statement. 

Examples  of  assigning  a  value  to  a  single 
variable  would  be: 

10  LETX=1 

20  LETA=B*2/3 

In  many  BASICs,  several  variables  maybe 
assigned  the  same  value  by  a  single  LET 
statement,  such  as: 

30  LETX=Y2=B=4 

Also,  a  variable  may  appear  on  both  sides  of 
the  equal  sign  since  the  entire  calculation  is 
completed  using  "old"  values  of  data  before 
the  result  is  assigned  to  variables  on  the  left 
hand  side  of  the  "="  sign.  For  example,  the 
statement: 

100  LETX=X+1 

will  take  the  old  value  of  X  added  to  one 
and  assign  the  result  as  the  new  value  of  X. 
The  LET  statement  is  not  an  algebraic 
equality,  but  a  command  to  perform  the 
computations  and  assign  the  answer  to  the 
variables  specified.  It  is  an  unfortunate  fact 
of  computer  language  life  that  most  lan- 
guages use  the  same  "="  symbol  for  assign- 
ment (data  transfer)  and  relational  tests 
(data  comparison). 

READ  and  DATA  Statements 

These  statements  are  used  to  enter  infor- 
mation into  the  computer  for  a  given  pro- 
gram. The  READ  statement  assigns  values 
obtained  from  DATA  statements  to  the 
variables  listed  in  the  READ  statement.  A 
DATA  statement  must  be  present  in  order  to 
use  a  READ  statement. 

Before  a  program  is  run,  the  typical 
BASIC  interpreter  will  take  all  DATA  state- 
ments in  the  order  they  appear  and  store 
them  in  a  large  data  block.  Every  time  a 
READ  statement  is  encountered,  the  next 
available  numbers  from  the  data  block  are 
assigned  to  the  variables  in  the  READ 
statement.  If  the  data  block  runs  out  of 
data,  the  program  will  stop  and  an  error 
message  will  be  printed. 

READ  statements  are  normally  located 
near  the  beginning  of  a  program  since  data 
must  be  read  in  before  working  with  it. 
DATA  statements  may  be  located  anywhere 
in  a  program,  as  long  as  they  occur  in  the 


100 


Talk  to  your  computer  for  $299 
with  SpeechLaB. 


Use  SpeechLab  to  directly 
control  any  S-100  Bus  Com- 
puter such  as  Sol,  IMSAI,  Altair 
and  so  on.  SpeechLab  can 
teach  you  almost  as  much  as  the 
Bell  Laboratories  know  about 
voice  recognition,  voice  control 
and  computer  input. 

SpeechLab  digitizes  and 
extracts  data  from  speech  wave 
form  and  applies  pattern 
matching  techniques  to  recog- 
nize the  vocal  input.  Response 
is  real  time.  The  system 
features  64  bytes  of  storage  per 
spoken  word  and  can  handle 
up  to  a  64  word  vocabulary.  And 
recognition  after  very  little 
practice  is  95  percent  or  better. 

$299"  assembled  and  tested 

When  we  talk  price  every- 
body's skeptical.  And  why 
not?  We  give  you  a  complete 
hardware/software  system, 
a  275  page  laboratory  manual, 
95  page  hardware  manual 
and  high  fidelity  microphone. 

The  lab  manual  includes 
35  graded  experiments  with 
over  100  tables  and  graphs.  In 
fact,  it's  the  only  introductory 
volume  on  speech  recognition 
currently  available. 

Software  includes 
SpeechBasic  Basic  program- 
ming language  in  source  and 

'Available  in  kit  form  for  slightly  less. 


paper  tape,  assembly  language 
speech  recognition  program 
in  source  and  paper  tape,  hard- 
ware self-test  program  in 
source  and  paper  tape. 
SpeechBasic  plot,  correlation, 
recognition  and  advanced 
recognition  programs  are 
offered  in  source. 

Hard  to  believe,  you  bet. 
True?  A  Los  Angeles  customer 
says,  ;'I  love  your  kit!!!  I 
have  40  boards  and  2  IMSAI's 
and  your  kit  was  the  best 
documented  of  them  all.  I  love 
the  way  you  integrated  the 
software  and  hardware  to- 
gether. I  love  your  lab  manual'.' 

We  loved  those  comments. 
They  tell  the  story  better  than 
we  ever  could.  The  LA  cus- 
tomer did  ask  who  the  founders 
of  the  firm  were  so  he  could 
relate  better.  They're  a  couple  of 


gifted  young  engineers  who 
got  tired  of  the  big  firm,  big  tech- 
nology trip  and  decided  to  take 
a  chance  with  a  better  idea. 

You  can't  get  better  quality 
You  can't  get  more  performance 

Sure,  more  complex, 
higher  price  equipment  is  avail- 
able for  about  50  times  more 
money.  It  won't  do  much  more 
than  you  can  do  with  Speech- 
Lab. And  the  quality  and 
state-of-the-art  engineering 
can't  be  any  better.  We  use 
CMOS  design  for  low  power 
and  ultimate  reliability. 

See  SpeechLab  at  your  nearby 
computer  store 

Selected  computer  stores 
have  SpeechLab  on  display. 
Visit  your  nearest.  If  he  doesn't 
have  it,  ask  him  to  contact  us 
or  simply  write  us  directly. 


Heuristics,  Inc.,  Box  B,  900  N.  San  Antonio  Road 
Los  Altos.  CA  94022,  Phone  (415)  948-2542 

□  Send  me  SpeechLab.  I  enclose  $299. 
California  residents  add  sales  tax. 

D  Send  me  more  information. 


Name- 
Streets 
City 


.  State . 


Zip. 


In  Canada: 
Trintronics  Ltd. 
186  Queen  St.  W. 
Toronto,  Canada  M5V  1Z1 


Heuristics 


INC. 


Circle  28  on  inquiry  card. 


Standard 

Alternate 

Symbol 

Expression 

Example 

Description 

= 

= 

A  =  B 

A  equals  B 

< 

LT 

A  <  B 
A  LT  B 

1 

A  is  less  than  B 

<= 

LE 

A  <=  B 
A  LE  B 

1 

A  is  less  than  or  equs 

> 

GT 

A  >  B 
A  GT  B 

1 

A  is  greater  than  B 

>= 

GE 

A  >=  B 
A  GE  B 

1 

A  is  greater  than  or  e 

<> 

NE 

A  <>  B 

A  NE  B 

1 

A  does  not  equal  B 

Table  3:  Typical  BASIC  Relational  Operators.  These  operators  are  used  to 
specify  comparisons  between  operands  which  might  be  numbers,  variables  or 
formulae.  In  certain  BASIC  implementations,  substitutes  are  made  when 
special  characters  are  not  available.  For  example,  in  a  homebrew  computer 
system  using  an  older  Baudot  Teletype  model,  such  substitutions  would  be  a 
virtual  requirement. 


correct  order.  Many  programmers  find  it 
convenient  to  place  DATA  statements  just 
before  the  END  statement  at  the  end  of  the 
program.  Each  READ  statement  is  of  the 
form: 

READ   [list  of  variables] 
While  each  DATA  statement  is  of  the  form: 

DATA  |  list  of  numbers] 
Example: 

100  READX,Y,Z 

200  DATA  1,2,3,4,5,6,7,8,9,0 

The  statements  in  this  example  would  read 
the  first  three  numbers  of  the  data  block 
(1,2,  and  3)  and  assign  them  to  X,  Y,  and  Z. 
Always  remember  that  only  numbers,  not 
formulas,  may  be  used  in  DATA  statements 
and  14/3  and  SQR(7)  arc  formulas. 

PRINT  Statement 

PRINT  statements  are  used  for  a  variety 
of  purposes  in  a  typical  program.  While  the 
command  is  called  "PRINT"  in  many  sys- 
tems this  means  in  fact  "send  data  to  the 
primary  BASIC  output  device,"  such  as  a 
hard  copy  printer  or  electronic  display  de- 
vice. The  following  example  illustrates  the 
format  used  to  print  the  results  of  a  com- 
putation or  a  variable  value: 

10  PRINT  X,SQR(X) 
This  example  would  print  or  display  the 
current  value  of  X  followed  by  the  square 
root  of  X  a  few  spaces  to  the  right.  To  print 
a  specified  message,  the  message  is  enclosed 
in  quotes  and  the  following  format  is  used: 

20   PRINT  "NO  ANSWER" 
This  example  would  simply  print  the  words 
NO  ANSWER  on  a  single  line  without  the 
quotes.  If  desired,  messages  and  values  may 
be  intermixed: 


30   PRINT  "THE  SQUARE  ROOT  OF" 

X"IS"SQR(X) 
This  statement  would  type  the  following  line 
if  the  value  of  X  were  nine: 

THE  SQUARE  ROOT  OF  9   IS   3 
To  skip  a  line  or  issue  only  a  carriage  return 
and  line  feed,  the  PRINT  statement  is  used 
with  no  arguments: 

40   PRINT 

With  many  of  the  more  advanced  BASIC 
systems  there  are  various  print  control 
characters  and  special  statements  which  may 
be  used  to  control  the  spacing  of  the  data 
being  printed.  This  control  may  vary  be- 
tween systems  and  is  beyond  the  scope  of 
this  article.  For  the  present,  it's  sufficient  to 
understand  the  primary  use  of  the  PRINT 
statement  and  to  know  there  are  often 
methods  available  to  print  data  in  any- 
desired  format. 

GO  TO  Statement 

The  GO  TO  statement  is  used  to  uncon- 
ditionally jump  to  some  specified  statement 
in  the  program  other  than  the  next  sequen- 
tial statement.  The  line  being  jumped  to  may 
be  anywhere  in  the  program,  before  or  after 
the  current  line.  The  general  form  of  the  GO 
TO  statement  is: 

GO  TO   [line  number] 
Example: 

100  GO  TO   200 
This  example   would  always  cause  the  pro- 
gram to  skip  to  line  200  whenever  reaching 
line  100. 

IF  Statement 

The  IF  statement  is  used  to  conditionally 
jump  from  the  sequential  order  of  state- 
ments according  to  the  truth  of  some  rela- 
tion. The  program  will  skip  to  the  desig- 
nated line  number  only  if  the  relation 
specified  is  true.  The  IF  statement,  some- 
times referred  to  as  a  conditional  GO  TO 
statement,  has  the  general  form  of: 

IF  [formula]  [relation)   [formula|  , 

THEN  [line  number] 

Example: 

120   IF  X=0,  THEN  200 

130  IFSIN(X)  <=0.5,  THEN  80 
In  this  example,  if  the  value  of  X  is  zero,  the 
program  will  skip  to  line  200.  If  the  sine  of 
X  is  less  than  or  equal  to  0.5,  the  program 
will  jump  back  to  line  80.  When  both 
conditions  are  false,  the  program  will  go  to 
the  next  line  in  order.  The  word  "THEN" 
may  be  replaced  with  "GO  TO"  or  the 
comma  before  "THEN"  may  be  optional 
depending  on  the  system. 

ON  Statement 

Where   the   IF   statement  provides  a  two 


102 


THE  LATEST  IN  TAPE  SYSTEMS 


MODEL  CC-8  -  $175.00 


MODEL  3M3A  -  $220.00 


2SIO  (R)  CONTROLLER 
$190.00  ($160.00  Kit) 


4800  BAUD  CASSETTE  RECORDER 

An  ASYNCHRONOUS  NRZtype  Recorder 
with  remote  motor  start/stop.  Error  rate  10^  at 
4800  BAUD.  Can  be  used  from  110  to  4800 
BAUD  into  a  UART  or  "Bit  Banger  PIA"  -  no 
clocking  required.  This  is  not  an  audio  recorder. 
It  takes  RS232  or  TTL  signals  from  the 
terminal  or  computer  and  gives  back  the  same 
signals.  No  audio  interface  is  used.  Motor 
start/stop  is  manual  or  through  TTL  or  RS232 
signals. 

Tape  speed  is  3.2"/second  nominal;  1.6"/sec. 
optional.  110  volt,  60  Hz,  5  watts.  (220  Volts 
on  special  order).  Can  use  high  quality  audio 
cassettes  (Philips  Type)  or  certified  data 
cassettes.  Can  be  used  in  remote  locations  from 
a  12  Volt  battery. 

Recommended  for  DATA  LOGGING, 
WORD  PROCESSING,  COMPUTER 
PROGRAM  RELOADING  and  DATA 
STORAGE.  Especially  recommended  for  6800 
systems,  6502  systems,  1800  systems  and 
beginners  with  the  8080  systems.  Manual 
control  except  for  motor  start/stop.  6800  or 
8080  software  for  file  or  record  searching 
available  on  request  with  order.  Used  by  major 
computer  manufacturers,  Bell  Telephone  and 
U.S.  Government  for  program  reloading  and 
field  servicing.  AVAILABILITY  -  Off  the 
shelf. 


50  KILOBAUD  CARTRIDGE  RECORDER 

This  is  a  self  clocking  (1/1)  high  speed 
recorder.  Loads  BASIC  in  under  2.0  seconds. 
Recording  is  done  at  19.2  Kilobaud.  Playback 
at  50  Kilobaud.  File  or  Record  searching  is 
done  at  50  Kilobaud  and  loading  is  automatic. 
Worst  case  access  time  about  2  minutes  for  up 
to  2  megabytes  on  the  3M  Data  Cartridge. 

Tape  speed  10"/sec.  on  record,  up  to 
30"/sec.  on  playback.  Records  one  clock  track 
and  one  data  track  on  each  pass  (2  passes). 
Recording  is  NRZ  unencoded  from  RS232  or 
TTL  signals. 

This  recorder  requires  one  Parallel  port  for 
motor  control,  and  one  serial  port  for  data  and 
clock.  (Cannot  be  used  with  UART's  or  UART 
boards  such  as  the  3P+S).  Used  with  USART's, 
ACIA's  or  other  1/1  clocking  I/O  devices  under 
software  control  only.  No  manual  controls. 
Software  for  8080  and  6800  available.  Power 
supply  is  built  in,  110V,  60  Hz.  220  V,  50  Hz 
for  export. 


PROVIDES  MONITOR  AND  TAPE 
SOFTWARE  in  ROM  TERMINAL  and  TAPE 
PORTS  on  SAME  BOARD  CONTROLS  ONE 
or  TWO  TAPE  UNITS  (CC-8  or  3M3A) 

This  is  a  complete  8080,  8085,  or  Z80 
system  controller.  It  provides  the  terminal  I/O 
(RS232,  20  mA,  or  TTL)  and  the  data  cartridge 
I/O,  plus  the  motor  controlling  parallel  I/O 
latches.  Two  kilobytes  of  on  board  ROM 
provide  turn  on  and  go  control  of  your  Altair 
or  Imsai.  NO  MORE  BOOTSTRAPPING.  Loads 
and  Dumps  memory  in  hex  on  the  terminal, 
formats  tape  cartridge  files,  has  word  processing 
and  paper  tape  routines.  Best  of  all,  it  has  the 
search  routines  to  locate  files  and  records  by 
means  of  six,  five,  and  four  letter  strings.  Just 
type  in  the  file  name  and  the  recorder  and 
software  do  the  rest.  Can  be  used  in  the  BiSync 
(IBM),  BiPhase  (Phase  encoded)  or  NRZ  modes 
with  suitable  recorders  and  interfaces. 

This  is  Revision  7  of  this  controller.  This 
version  features  2708  type  EPROM's  so  that 
you  can  write  your  own  software  or  relocate  it 
as  desired.  One  2708  preprogrammed  is 
supplied  with  the  board.  A  socket  is  available 
for  the  second  ROM  allowing  up  to  a  full  2K  of 
monitor  programs. 

Fits  all  S100  bus  computers  using  8080  or 
Z80  MPU's.  Requires  2  MHz  clock  from  bus. 
Cannot  be  use;  with  audio  cassettes  without  an 
interface.  Cassette  or  cartridge  inputs  are 
RS232  level. 
AVAILABILITY -Off  the  shelf. 


OVERSEAS:  Export  Version  220  volt  50  hz.  Write  factory  or:  Megatron-Datameg,  8011  Putzbrunn,  Munchen,  Germany; 
Nippon  Automation  5-16-7  Shiba,  Minato-Ku,  Tokyo.  Japan;  Hobbydata,  FACK  20012,  Malmo,  Sweden;  G.  Ashbee,  172 
Ifield  Road,  London  SW  10-9ag:  Trintronics,  Ltd.,  186  Queen  Street  W.,  Toronto,  Ontario,  Canada;  EBASA,  Enrique 
Barges  1 7,  Barcelona  14,  Spain;  ARIES,  7,  rue  Saint  Phillipe  du  Roule,  75008  Paris;  Microlem  20131 ,  Milano,  Italy;  Eagle 
Electric,  Capetown,  S.  Africa. 

For  U.P.S.  delivery,  add  S3. 00  Overseas  and  air  shipments  charges  collect.  N.J.  Residents  add  5%  Sales  Tax.  WRITE  or  CALL  for  further 
information.  Phone  Orders  on  Master  Charge  and  BankAmericard  accepted. 

Canadian  Distributor: 

Trintronics  Limited 

186  Queen  Street  West 

Toronto,  Canada  M5V  IZ1 

Tel:  (416)  598-0262  NATIONAL  MULTI  PLEX  CORPORATION 

3474  Rand  Avenue,  South  Plainfield  NJ  07080  Box  288  Phone  (201)  561-3600  TWX  710-997-9530 

Circle  29  on  inquiry  card. 
103 


Legal    Loops: 


-100    FOR  X 
-110    FOR  Y 


-157    NEXT  Y 
■160   NEXT  X 


Illegal  Loops: 


•  NOTE  CROSSOVER 
-780    FOR  X    .  .  . 
-790    FOR  Y    .  .  . 


■820   NEXT  X 
■830   NEXT  Y 


Legal    Loops: 


Figure  I:  Nesting  Diagrams:  Legal  and  Il- 
legal. There  are  legal  and  illegal  ways  to  nest 
FOR  .  .  .  NEXT  loops.  The  legal  way  to  do 
so  is  to  ensure  that  the  program  always  has 
complete  loops  within  loops.  The  illegal  way 
is  to  have  the  loops  cross  each  other.  The 
arrows  show  the  scope  of  each  loop  in  this 
set  of  examples. 


-213    FOR  X 

-220    FOR  Y 

r~230    FOR  Z 


1—260    NEXT  Z 


r^300    FOR  W 


■350    NEXT  W 


-    400    NEXT  Y 
410   NEXT  Z 


general  form  of  the  END  statement  is  simply 
the  word  "END": 
9999   END 

STOP  Statement 

The  STOP  statement  is  equivalent  to  a 
GO  TO  statement,  where  the  line  skipped  to 
is  the  END  statement  of  the  program.  The 
statement  is  simply  the  word  "STOP": 

1000  STOP 

REM  Statement  (Remark) 

The  REM  statement  provides  a  method 
of  inserting  remarks  and  comments  in  a 
program  listing.  Even  though  whatever  fol- 
lows REM  is  ignored,  the  line  number  may 
be  used  in  a  GO  TO,  IF,  ON,  or  GOSUB 
statement.  The  general  form  of  the  REM 
statement  is: 

REM    [any  desired  information! 

Example: 

1000  REM  THIS  ROUTINE  AVERAGES 

10NUMBERS 


way  fork  in  a  program,  the  ON  statement  (if 
it  is  implemented)  allows  a  multiple  path 
switch.  The  general  form  of  the  ON  state- 
ment is: 

ON  [formula |, 

GO  TO  |  list  of  line  numbers] 
Any  formula  may  be  used  and  the  instruc- 
tion may  contain  any  number  of  line  num- 
bers as  long  as  the  statement  fits  on  a  single 
line. 

The  value  of  the  formula  is  computed  and 
truncated  to  an  integer.  If  the  result  is  one, 
the  program  skips  to  the  line  number  occur- 
ring first  in  the  list;  if  the  result  is  two,  it 
skips  to  the  second  line  number  in  the  list, 
etc.  If  the  result  of  the  formula  computation 
is  less  than  one  or  greater  than  the  number 
of  line  numbers  listed,  an  error  message  is 
printed. 

Example: 

20  ON  X-1, 
This     example 
following: 

If  X  is  2,  program  will  go  to  line  1 00 

If  X  is  3,  program  will  go  to  line  200 

If  X  is  4,  program  will  go  to  line  300 

If  X  is  less  than  2  or  greater  than  4,  an 

error  message  will  be  printed. 
The   comma   preceding    "GO  TO"   may   be 
omitted    or    the    word    "THEN"    may    be 
substituted   for  "GO  TO"  on  some  systems. 

END  Statement 

Every  program  must  have  an  END  state- 
ment and  it  must  be  the  statement  with  the 
highest    line    number    in    the   program.   The 


GO  TO  I  00,  200,  300 
will     cause     one     of 


the 


Elementary  Programming  Examples 

Now  that  the  elementary  statements  and 
functions  have  been  introduced,  three 
sample  programs  are  included  which  will 
help  illustrate  how  statements  are  combined 
to  accomplish  various  computations  or 
comparisons. 

Loops 

The  simplest  way  to  execute  a  sequence 
of  instructions  a  given  number  of  times  is  by 
using  a  program  loop.  The  block  of  instruc- 
tions within  the  loop  is  executed  repeatedly 
until  a  given  condition  is  satisfied.  In  BASIC 
there  are  two  statements  used  to  specify  a 
loop:  The  FOR  statement  is  used  at  the 
beginning  of  the  loop  and  the  NEXT  state- 
ment at  the  end.  The  general  form  of  the 
FOR  statement  is: 

FOR  |  numeric  variable]  =  [formula-]] 

TO  [Tormu^]  STEP  [formu^] 
Depending  upon  the  BASIC  implementation, 
the    word    "BY"    may    be    substituted   for 
"STEP"  in  the  FOR  statement. 

The  accompanying  NEXT  statement  is  of 
the  form: 

NEXT  [numeric  variable] 
The  variable  in  the  NEXT  statement  must  be 
the  same  variable  as  in  the  FOR  statement 
for  each  loop. 

Loops  may  be  nested  to  a  level  dependent 
on  the  particular  BASIC  implementation 
system,  but  the  loops  must  be  legally  nested 
and  not  crossed.  Figure  I  shows  some 
examples  of  legal  and  illegal  nesting. 

The  value  of  the  numeric  variable  starts  at 
the  value  of  formula-]  and  is  changed  by  the 


104 


XililEDiA  P=5EiEnCi 


The  SOROC 10120 


CURSOR  CONTROL.  Forespace,  back- 
space, up,  down,  new  line,  return,  home, 
tab,  PLUS  ABSOLUTE  CURSOR  AD- 
DRESSING. 

TRANSMISSION  MODES.  Conversation 
(half  and  full  Duplex)  PLUS  BLOCK 
MODE  —  transmit  a  page  at  a  time. 

FIELD  PROTECTION.  Any  part  of  the 
display  can  be  "protected"  to  prevent 
overtyping.  Protected  fields  are  displayed 
at  reduced  intensity. 

EDITING.  Clear  screen,  typeover,  abso- 
lute cursor  addressing,  erase  to  end  of 
page,  erase  to  end  of  line,  erase  to  end 
of  field. 

DISPLAY  FORMAT.  24  lines  by  80  char- 
acters (1 ,920  characters). 

CHARACTER  SET.  96  characters  total. 
Upper  and  lower  case  ASCI  I . 

KEYBOARD.  73  keys  including  numeric 
key  pad. 

REPEAT  KEY.  1  5  cps  repeat  action. 

selectable 


DATA    RATES.    Thumbwhee 
from  75  to  19,200  baud. 

SCREEN.  12  inch  rectangular  CRT 
phosphor. 


P4 


SPECIAL  INTRODUCTORY  PRICING 
Kit  $  995.00  Assembled  $  1 ,295.00 

(Price  includes  block  mode,  lower  case  and  24 
line  options.) 


Specials  of  the  Month 

North  Star  Micro  Disk 

with  power  supply  and  cabinet Kit  —  S699 

Assembled  -  $799 

IMSAI  I-8080  with  TDL  ZPU Kit  -  $825 

Assembled  -  $975 

Digital  Systems  FDS  Disk  Drive  with 
CP/M  Software  (assembled  only)  .  Single  -  $1,750 

Dual  -$2,350 

Mountain  Hardware  PROROM    Kit  -  $145 

Assembled  -$210 

Vector  Graphic  8K  RAM Kit  -  $235 

Assembled  —  $285 


XIMEDIA  OFFERS  A  FULL  RANGE  OF  PRODUCTS  FOR 
THE  PERSONAL  COMPUTER  ENTHUSIAST  AND  THE 
SMALL  SYSTEM  DESIGNER.  LET  US  QUOTE  ON  ALL 
YOUR  HARDWARE  AND  SOFTWARE  NEEDS. 

OUR  RETAIL  STORE -THE  COMPUTERISTtm  -  IS  NOW 
OPEN  IN  SAN  FRANCISCO.  CALL  US  FOR  DIRECTIONS. 


NOW  WE  RE 
TOLL  FREE 

800-227-4440 

(in  California,  Hawaii,  and  Alaska,  call  collect: 
415/566-7472) 


XililEDiA 

1290  24th  Avenue,  San  Francisco,  CA  94122 

(415)  566-7472 

Circle  30  on  inquiry  card. 

COD  orders  freight  collect.  Orders  with  payment  shipped  prepaid.  California 
residents  add  6%  sales  tax.  Please  allow  3  weeks  for  delivery. 


value  of  formula3  (either  positive  or  nega- 
tive) each  time  BASIC  completes  an  execu- 
tion of  the  loop.  If  the  word  "STEP"  and 
formula3  are  omitted,  the  step  value  defaults 
to  positive  one.  It  should  be  pointed  out, 
however,  that  the  control  variable  may  be 
changed  within  the  body  of  a  program  loop 
if  desired.  Exercise  care  when  using  non- 
integer  step  values  since  noninteger  numbers 
cannot  be  represented  exactly  in  binary  and 
may  be  truncated  or  approximated  within 
the  computer.  This  may  cause  an  undesired 
number  of  loops  to  be  executed  due  to  the 
unexpected  results.  [See  W  Douglas  Maurer's 
"Software  Bug  of  the  Month  #2"  on  page  SI 
of  the  July  1976  BYTE.}  For  this  reason, 
every  effort  should  be  made  to  use  an 
integer  step  value  whenever  possible. 

Example: 

5   LETF=1 

10   FORX=l  TO  10  STEP  1 

20   LET  F=F*X 

30   PRINT  X,F 

40  NEXTX 
This  example  program  loop  will  be  executed 
10  limes  as  X  is  incremented  by  one 
between  the  values  of  one  and  10.  During 
each  pass  of  the  loop,  the  numbers  X  and 
X-factorial  will  be  printed.  The  FOR  state- 
ment in  this  example  could  have  been 
shortened  to: 

10   FOR  X=l  TO  10 
since  the  step  value  was  one. 

Subroutines 

When  a  particular  sequence  of  statements 
is  to  be  used  repeatedly  in  several  different 
places  within  a  program,  they  may  be 
written  as  a  subroutine.  A  subroutine  is  a 
completely  self-contained  program  accessed 


Sample  Program  =1: 

This   program    reads  a  group   of  numbers  from  a  data  block  and  prints  the 

average  of  the  numbers  read.  The  nun- 

be  i 

9999  is  used  as  a  dummy  item  in  the 

data  block  to  indicate  the  end  of  the  data  block.  The  individual  numbers  of  the 

data  block  are  read  until  9999  is  found 

Since  all  variables  are  initially  set  equal  to 

zero   until   assigned  another  value,  th 

=re 

is  no  need  to  include  a  statement  to 

initialize  S  and  C  to  zero  (LET  S=C=0). 

Program 

Explanation 

10  REM  print  average  of  numbers 

Remark 

20  Read  X 

Read  a  number  X 

30  If  X=9999,  then  70 

Check  for  end  of  data  if  X=9999 

40  Let  S=S+X 

Add  X  to  sum 

50  Let  C=C+1 

Increment  the  data  count  C 

60  Go  to  20 

Go  back  for  more  data 

70  Print  S/C  "is  the  average  of" 

Compute  and  print  average 

C  "numbers" 

80  Data  5,7,3,9,27,54,31,9999 

Data 

90  End 

End  of  program 

by   the   main  program  or  other  subroutine; 
using  a  subroutine  calling  convention. 

In  BASIC,  subroutines  arc  entered  (oi 
called)  by  using  GOSUB  statements  any- 
where in  the  main  program  (or  other  sub- 
routines) of  the  general  form: 

GOSUB  line  number 
The  GOSUB  statement  is  similar  to  a  GO  TO 
statement  except  the  computer  saves  the 
location  of  the  GOSUB  statement  before 
going  to  the  subroutine.  Statements  are  then 
executed  sequentially  until  a  RETURN 
statement  is  encountered.  The  RETURN 
statement  directs  the  computer  to  return  to 
the  line  following  the  GOSUB  statement 
that  called  the  subroutine.  It  consists  simply 
of  a  line  number  and  the  word  "RETURN": 

I000   RETURN 
and  is  usually  the  last  line  of  a  subroutine. 

Subroutines  may  appear  anywhere  in  the 
main  program  but  should  only  be  entered 
with  a  GOSUB  statement  and  exited  via  a 
RETURN  statement.  A  subroutine  may 
actually  contain  several  RETURN  state- 
ments as  long  as  one  will  be  used.  By  using  a 
GOSUB  statement  within  one  subroutine  to 
call  a  second  subroutine,  subroutines  may  be 
nested.  The  level  of  subroutine  nesting  is 
sometimes  limited  depending  on  the  parti- 
cular BASIC  implementation  used. 
Example: 
10   LET  L=4 

20  PRINT  "THIS  PROGRAM  PRINTS" 
30  GOSUB  1 90 

40   PRINT  "THIS  MESSAGE  WITH" 
50  GOSUB  I  90 

60   PRINT  "FOUR  BLANK  LINES" 
70  GOSUB  190 
80   PRINT  "BETWEEN  PRINTED 

LINES." 
90  GOSUB  190 
100   REM  Then  the  numbers  1  to  10  are 

printed  with  the 
I  10   REM  number  indicating  the  number 

of  blank  lines 
120   REM  following  that  line. 
130   FOR  L=1  TO  10 
140   PRINT  L 
150  GOSUB  190 
160  NEXT  L 
170   PRINT  "DONE" 
180  STOP 
190   REM  Subroutine  to  print  "L" 

blank  lines. 
200   IF  L>0,  THEN  220 
210   RETURN 
220   FOR  X=l  TO  L 
230   PRINT 
240   NEXT  X 
250   RETURN 
260   END 
This  example  illustrates  how  subroutines  are 
utilized   and   the  use  of  multiple  RETURN 


106 


top  values, 
professionalism 

Computerland  stores 
are  exciting,  enjoyable 
places  to  visit.  From  the 
striking  decor  to  the  fun 
and  challenge  of  the 
ComputerlandiM  Game 
room,  you'll  find 
Computerland  stores  a 
completely  new 
shopping  experience. 

You  can  count  on 
Computerland  stores  for 
total  professional 
support  whether  your 
needs  are  those  of  a 
computer  hobbiest, 
education,  science  or 
business  user.  The 
skilled,  management- 
trained  staff  offers 
knowledgeable  service, 
expert  maintenance, 
and  software  guidance. 


breadth  of 
products 

At  Computerland  stores 
the  emphasis  is  on 
quality  products.  Major 
brands  like  Cromemco, 
DEC,  Diablo,  IMSAI, 
Lear  Siegler, 
Polymorphic  Systems, 
TDL  and  Vector 
Graphic  to  name  a  few. 


Every  store  is 
completely  stocked  with 
tools,  books  and  a 
broad  range  of 
accessories. 

beginners 
welcomed 

Do  you  want  to  get 
started  with 
microcomputers?  Are 
you  seeking  expert 
guidance  on  computers, 
peripherals,  software? 
The  place  to  visit  is 
your  nearest 
Computerland. 


now  open: 

•  4233  Convoy  Street 

•  DeHart  Street 

San  Diego,  CA  92111 

Morristown,  NJ  07960 

(201 )  539-4077 

•  50  East  Rand  Road 

•  6840  La  Cienega  Blvd. 

Arlington  Heights,  IL  60004 

Inglewood,  CA  90302 

(213)776-8080 

•  225  Elmira  Road 

•  813  B  Lyndon  Lane 

Ithaca,  N.Y.  14850 

Louisville,  KY  40222 

(607)  277-4888 

(502)  425-8308  ' 

•  16065  Frederick  Road  (Rt  355) 

•  104  W.  First  Street 

Rockville,  MD  20850 

Tustin,  CA  92680 

(301)  948-7676 

(714)  544-0542 

•  1612  Niagara  Falls  Blvd. 

•  24001  Via  Fabricante 

Buffalo,  NY  14150 

Mission  Viejo,  CA  92675 

(714)770-0131 

opening  soon: 

•  22634  Foothill  Blvd. 

•  Thousand  Oaks,  CA 

Hayward,  CA  94542 

•  Park  Ridge,  IL 

(415) 538-8080 

•  Franchise  Opportunities  available 

—  Contact:  Ed  Faber,  President 

Computerland  Corp.TM  (415)  895-9363. 

Circle  31  on  inquiry  card. 


statements  within  a  single  subroutine.  It  also 
shows  how  the  line  number  of  a  REM 
statement  may  be  used  in  a  GO  TO,  IF,  ON, 
or  GOSUB  statement  as  mentioned  earlier. 
Every  time  a  "GOSUB  190"  statement  is 
encountered  in  this  example,  the  program 
will  go  to  the  subroutine  starting  at  line  190. 
If  the  value  of  L  is  less  than  or  equal  to  zero, 
the  computer  will  return  to  the  main  pro- 
gram. Otherwise,  the  subroutine  will  print  a 
number  of  blank  lines  equal  to  the  value  of 
L  before  returning  to  the  main  program. 

Lists  and  Tables 

In  addition  to  the  limited  number  of 
simple  variables,  BASIC  usually  allows  the 
capability  to  designate  the  elements  of  lists 
or  tables.  Simple  variables  arc  called  un- 
subscripted  variables  while  list  or  table 
elements  are  called  subscripted  variables. 
Subscripted  variables  may  be  used  anywhere 
an  unsubscripted  variable  would  normally  be 
used,  except  immediately  after  "FOR"  in  a 
FOR  statement  or  in  a  NEXT  statement. 
Several  special  matrix  instructions  and  func- 
tions will  be  discussed  later. 

The  name  of  each  list  or  table  must  be 
designated  by  a  single  letter.  The  individual 
elements  of  a  list  (also  called  a  vector)  are 
specified  by  the  list  name  followed  by  a 
subscript  in  parentheses:  A(0),  A(1), 
.  .  .  A(n)  while  table  (also  called  a  matrix) 
elements  are  specified  by  double  subscripts: 
B(1,l),  B(l,2),.  .  .  B(m,n).  The  subscript 
form  is  flexible  and  may  be  either  a  constant 
or    any    legal    expression    as    long    as    the 


Sample  Program  #2: 

This  program  will  determine 

the 

sma 

llest  and  largest  numbers  of  a  given  data 

block  and  print  the  values. 

The 

first  entry  in  the  data  block  indicates  the  number 

of  entries  to  read  from  th 

e  data  b 

ock 

(An  alternative  would  be  to  use  end  of 

data  indicator.) 

Program 

Explanation 

10  LetS=10E6 

Set  smallest  number  to  something  big 

20  Read  C 

Get  number  of  entries 

30  Read  N 

Read  data  (once  for  each  number) 

40  If  N  >=S,  then  70 

Jump  if  larger  than  old  smallest  number 

50  Let  S=N 

Set  new  smallest  number  equal  to 
this  number 

60  Go  to  90 

Continue  (skip  largest  test) 

70  If  N<=L,  then  90 

Jump  if  smaller  than  old  largest  number 

80  Let  L=N 

Set  new  largest  number  equal  to 
this  number 

90  Let  C=C-1 

Decrement  data  count 

100  If  C  <>  0,  then  30 

If  C  not  equal  zero  then  continue 

1 10  Print  "largest  number  is 

"  L 

Print  answers 

120  Print 

With  blank  line 

130  Print  "smallest  number 

is"  S 

Between  them 

140  Data  8 

Number  of  data  entries 

150  Data  2,7,42,74,21,61,47,29 

Data 

160  End 

Program  end 

subscript  value  is  not  less  than  zero.  The 
single  letter  denoting  a  list  or  table  name 
may  also  be  used  as  a  simple  variable  without 
confusion.  The  same  letter  may  not,  how- 
ever, be  used  to  denote  both  a  list  and  a 
table  in  the  same  program  since  a  list  is 
actually  a  single  column  table. 

Example: 

10   FOR  1=0  TO  2 

20   FOR  J=0TO3 

30   READM(IJ) 

40   NEXT  J 

50   NEXT  I 

60   DATA  1,2,3,4 

70   DATA  5,6,7,8 

80   DATA  9,10,11,12 
This  example  routine  shows  how  a  3  by  4 
table  may  be  entered  into  a  program  using 
elementary    statements   and    how   the  table 
entries  are  specified. 

Storage  space  is  automatically  reserved 
for  any  list  or  table  with  subscripts  (typi- 
cally) of  10  or  less  (the  exact  number 
depends  on  the  implementation).  For  larger 
subscripts,  space  must  be  reserved  by  using  a 
DIM  statement.  A  DIM  statement  may  ap- 
pear on  any  line  before  the  END  statement, 
but  it  is  normally  placed  at  the  beginning  of 
the  program.  A  DIM  statement  may  also  be 
used  to  reserve  less  space  for  a  small  list  or 
table  when  a  large  program  requires  more 
program  space. 

The  general  forms  of  DIM  statements  for 
lists  or  tables  are: 

DIM  |listname]  (  maximum  subscript   ) 

DIM  | table  name |  (  maximum  row 

subscript,  maximum  column  subscript  ) 
Separate  DIM  statements  arc  not  needed  for 
each   list  or  table;  several  lists  or  tables  may 
be  specified   in   a  single  DIM  statement  by 
separating  them  with  commas. 

Example: 

10   DIMV(15) 

20   DIM  M(20,20) 
May   also  be  written  in  a  single  DIM  state- 
ment as: 

10   DIM  V(15),M(20,20) 
This  example  reserves  space  for  16  items  in 
vector  V: 

V(0),  V(1),  V(2),  ...V(I5) 
and  441  items  in  matrix  M: 

20  +  1  rows  and  20  +  1  columns 

Advanced  Statements  and  Functions 

This  section  will  briefly  introduce  the 
more  advanced  and  specialized  features  of 
BASIC.  These  features  may  or  may  not 
be  available  in  a  particular  BASIC  implemen- 
tation, whereas  the  elementary  statements 
and  functions  already  presented  should 
always  be  found.  Refer  to  the  programming 
manual    for    your    particular    BASIC    inter- 


108 


ANY  NUMBER  OF  FILES  MAY  BE  OPEN  (IN  USE)  AT  ONE  TIME 

THE  NUMBER  OF  FILES  AND  SIZE  OF  FILES  IS  LIMITED  ONLY  BY  THE  SIZE  OF  THE  DISC 

MERGING  FILES  REQUIRES  NO  EXTRA  DISC  SPACE 

NO  WAITING  FOR  THE  DISC  TO  RE-PACK 

LONGER  DISC  LIFE -MORE  EVEN  DISC  WEAR 


Our  Basic  Floppy  Disc  System  (BFD-68)  must,  in  all  mod- 
esty be  called  superb.  It  comes  completely  assembled  with  a 
disc  controller  that  is  plug  compatible  with  the  SWTPC  6800. 
In  fact  all  our  products  use  the  6800  standard  SS-50  (Smoke 
Signal  50)  bus  used  by  SWTPC.  The  cabinet  and  power  supply 
are  capable  of  handling  up  to  3  Shugart  Mini-Floppy  Drives. 
One  drive  is  included  in  the  price  of  the  BFD-68  and  others 
may  be  added  easily  at  any  time.  Or  you  may  save  money  by 
ordering  the  dual-drive  BFD-68-2  or  triple  drive  BFD-68-3  (pic- 
tured). Price:  BFD-68  $795,  BFD-68-2  $1169,  BFD-68-3  $1539, 
SA-400  Drive  $390. 

The  BFD-68  includes  our  Disc  Operating  System  Software. 
Our  software  provides  for  a  soft-sectored  disc  format  consist- 
ing of  128  bytes  per  sector,  18  sectors  per  track  and  35  tracks 
per  disc.  The  software  provides  direct  commands  to  name  and 
rename  files,  transfer  memory  to  disc  and  disc  to  memory  and 
to  automatically  jump  to  the  starting  location  of  any  program 
loaded  from  disc  to  memory.  The  direct  command  names  are: 
RUN,  GET,  GETHEX,  CLOSE,  SAVE,  DELETE,  APPEND,  RE- 
NAME, COPY,  LIST,  FIND,  LINK  and  PRINT.  In  addition,  the 
Disc  File  Management  subroutines  are  available  to  create  files 
under  your  program  control. 

A  bootstrap  PROM  is  included  on  the  controller  board  to  ini- 
tiate the  Disc  Operating  System  which  loads  into  a  4K  memory 
board  located  at  7000  or  optionally  at  D000.  Thus,  you  can  be 
up  and  running  from  a  cold  start  in  just  a  few  seconds. 

SUPER  SOFTWARE 

Free  patches  are  provided  for  SWTPC  BASIC  version  2.0  and 
Co-Resident  Editor/Assembler.  These  patches  allow  the  SAVE 
and  LOAD  commands  to  work  with  the  disc  or  the  cassette  at 
your  option. 

SUPER  EDITOR:  Smoke  Signal  Broadcasting  now  has  its 
own  editor.  It  is  a  content  oriented  editor  with  string  search 
and  block  move  capability.  Changes  may  be  made  by  referring 
either  to  line  number  or  string  content  or  a  combination  of 
references.  Naturally,  it  is  designed  for  file  transfers  to  and 
from  the  BFD-68.  Price:  SE-1  $29  on  diskette. 

ALL  OUR  PRODUCTS  EXCEPT  THE  PS-1  ARE  COMPLETELY  ASSEMBLED. 


SUPER  ASSEMBLER:  Inputs  source  code  from  file  on  the 
BFD-68  disc  system  and  outputs  object  code  to  disc  file.  As- 
sembly listings  include  alphabetized  and  tabulated  symbol 
table.  Price:  SA-1  $29  on  diskette. 

Complete  source  listing  included  for  both  editor  and  assem- 
bler. Order  both  for  $53  and  save  $5. 

SMARTBUG-A  CURE  FOR  MIKBUGITIS:  A  super  smart 
Motorola-Mikbug  replacement  that  preserves  almost  all  Mik- 
bug  entry  locations  so  your  present  programs  will  run  without 
modification.  Uses  ACIA  instead  of  PIA  and  includes  many 
additional  features  including  a  software  single-step  trace  com- 
mand. A  SMARTBUG  listing  is  included  and  object  code  is 
provided  on  a  2708  free  with  each  P-38  series  board  pur- 
chased. Source  listing  available  separately  for  $19.50. 

NEED  A  FULL  SIZE  FLOPPY?  Our  P-38-FF  is  a  plug-in  inter- 
face card  to  the  ICOM  Frugal  FloppyTM.  It  includes  all  the  fea- 
tures of  the  P-38-1  plus  one  2708  EPROM  containing  the  ICOM 
bootstrap  software.  Just  plug  the  P-38-FF  into  your  SWTPC 
6800  and  your  ICOM  into  the  P-38-FF  and  you're  ready  to 
use  the  Frugal  Floppy  and  ICOM's  6800  software  package. 
Price  $299. 

Our  P-38  is  an  8K  EPROM  board  containing  room  for  8 
2708's.  Or,  you  may  use  it  to  hold  up  to  7  2708's  plus  your 
Motorola  Mikbug  or  Minibug  II  ROM.  The  P-38  addressing  is 
switch  selectable  to  any  8K  location.  Price  $179. 

The  P-38-1  contains  all  the  features  of  the  P-38  plus  an  inter- 
face to  the  Oliver  Paper  Tape  Reader  and  our  EPROM  Pro- 
grammer. Price  $229. 

The  PS-1  Power  Supply  Kit  provides  plus  and  minus  16  volts 
required  for  the  P-38  series  boards.  Also,  it  allows  a  wiring 
modification  to  be  made  to  the  8  volt  supply  that  will  increase 
its  output  by  one  volt.  Price  $24.95. 

Our  M-16-A  is  a  16K  single  power  supply  STATIC  RAM  mem- 
ory system.  The  M-16-A  is  fully  buffered  and  requires  only  half 
the  power  of  a  similar  size  system  using  low-power  2102's. 
With  the  M-16-A,  you  can  expand  your  system  to  48K  and  still 
have  room  left  for  one  of  our  EPROM  boards.  The  M-16-A  is 
switch  selectable  to  any  4K  starting  address  and  hardware 
write  protect  is  included.  Quick  delivery.  Price  $595. 

BANKAMERICARD,  VISA  AND  MASTER  CHARGE  WELCOME. 


P.O.  Box  2017,  Hollywood,  CA  90028*  (213)  462-5652 

Circle  32  on  inquiry  card. 


Sample  Program  #3: 

This  simple  inventory  program  for  th 

ree 

products  illustrates  the  use  of  the  ON 

statement  by  reading  an  item  code  num 

aer 

followed  by  an  item  count  from  the 

data  block.  The  ON  statement  decodes 

the 

item  code  to  determine  what  total  to 

add  the  new  count  to.  When  done,  the 

program  prints  all  the  current  inventory 

totals. 

Program 

Explanation 

10  REM  inventory 

Program  name 

20  Read  N,  11,12,13 

Read  data  count  and  original  totals 

30  Read  l,C 

Read  code  and  count 

40  If  l>3,  then  130 

Check  for  valid  code 

50  If  I  <  1,  then  130 

60  On  I,  go  to  70,90,1 10 

Decode  item  code 

70  Let  I1  =  I1+C 

Add  to  item  #1 

80  Go  to  150 

Continue 

90  Let  I2H2+C 

Add  to  item  #2 

100  Go  to  150 

Continue 

110  Let  I3=I3+C 

Add  to  item  -.'3 

120  Go  to  150 

Continue 

130  Print  "invalid  item  code" 

Print  error  message 

140  Stop 

Exit  program 

150  Let  N=N-1 

Decrement  data  count 

160  If  N  <>  0,  then  30 

Finish  data 

170  Print  "item  #1  ="  11 

Print  totals 

180  Print  "item  #2="  12 

190  Print  "item  *3  ="  13 

200  Print 

Blank  line 

210  Print  "total  items  ="  11  +  12+13 

Combined  total 

220  Data  6,1020,1349,714 

Original  totals 

230  Data  1,12,1,7,3,27,2,11,3,212,1 

. 

Data 

136 

240  End 

Program  end 

Notice  how  this  program  checks  for 

an 

illegal  value  before  the  ON  statement. 

An  invalid  item  code  causes  a  message 

to 

be  printed  and  the  STOP  statement 

terminates  the  program. 

preter    to    be    sure    the    desired    functions 
and/or  statements  are  available. 

INPUT  Statement 

The  INPUT  statement  acts  like  a  READ 
statement  except  data  is  entered  from  the 
console  keyboard  rather  than  from  DATA 
statements.  Whenever  BASIC  encounters  an 
INPUT  statement  ii  types  a  question  mark 
(?)  to  indicate  it  is  waiting  for  operator 
input.  The  user  then  types  the  desired  input 
as  it  would  normally  appear  in  a  DATA 
statement  terminated  by  a  carriage  return. 
INPUT  statements  are  usually  combined 
with  PRINT  statements  to  indicate  what 
value  is  desired: 

10   PRINT  "NUMBER  OF  DAYS"; 

20  INPUT  D 
The  semicolon  at  the  end  of  the  PRINT 
statement  causes  the  question  mark  to  be 
typed  on  the  same  line  as  the  message. 
Normally,  the  question  mark  would  be 
printed  on  a  separate  line.  In  this  example, 


the  words  NUMBER  OF  DAYS  without 
quotes  would  be  printed  followed  by  a 
question  mark.  The  number  typed  followed 
by  a  carriage  return  would  be  assigned  to  the 
variable  D.  The  data  entered  via  an  INPUT 
statement  is  not  saved  with  the  program  so  it 
should  only  be  used  when  entering  small 
amounts  of  data  or  data  that  is  unknown 
until  the  program  is  run. 

RESTORE  Statement 

The  RESTORE  statement  typically 
permits  reading  data  from  the  DATA  state- 
ments of  a  program  more  than  once.  When- 
ever a  RESTORE  statement  is  encountered, 
BASIC  resets  the  data  block  pointer  to  the 
first  entry  in  the  data  block.  The  next 
READ  statement  then  starts  reading  the  data 
block  all  over  again. 

SIGN  Function 

The  sign  function: 

SGN(X) 
returns   a   value   indicating  the   sign   of  the 
argument  specified.  The  value  one  is  assigned 
for  any  positive  number,  zero  for  zero,  and 
—  I  for  any  negative  number. 

Example: 

SGN(2.75)  =  1 

SGN(0)  =  0 

SGN(-0.25)  =  -1 
The  sign  function  can  be  combined  with  an 
ON   statement   to  give  a   three  way  branch 
depending  on  the  sign  of  a  number: 

60ONSGN(X)+2, 

GO  TO  1 00,  200,  300 
This  instruction   will   jump   lo    100   if  X   is 
negative,  200  if  X  equals  zero,  or  to  300  if  X 
is  positive. 

INTEGER  Function 

The  integer  function: 

INT(X) 
returns  the  greatest  integer  of  X  that  is  less 
than  or  equal  to  X. 

Example: 

INT(2.98)  =  2 

INT(-2.05)  =  -3 

INT(4)  =  4 
The  integer  function  may  be  used  to  round 
numbers  to  the  nearest  integer  by  adding  0.5 
to  the  number: 

INT(X+0.5) 
It  may  also  be  used  lo  truncate  a  number  lo 
any  specific  number  of  decimal  places  (n): 

INT(X*10**n+0.5)/(IO**n) 

Random  Numbers 

Most  forms  of  BASIC  provide  a  means  of 
generating  a  random  number  between  zero 
and  one.  This  function  is  generally  used  to 
simulate  events  that  happen  in  a  somewhat 


110 


CP/M 

LOW-COST 

MICROCOMPUTER 

SOFTWARE 


i 


CP/M  is  a  low-cost  control  program  for  microcomputers  which  brings  together 
recent  advances  in  computer  and  peripheral  technology.  CP/M  is  an  advanced 
disk  operating  system  designed  for  use  with  IBM-compatible  diskette-based 
computer  systems  which  employ  the  Intel  8080  microcomputer.  Previously 
available  only  to  OEM's,  CP/M  has  been  in  existence  for  over  three  years  in 
various  manufacturers'  products,  and  has  undergone  extensive  field  testing.  The 
functions  of  this  software  package  include  named  dynamic  files,  program 
editing,  assembly,  debugging,  batch  processing,  and  instantaneous  program 
loading,  resulting  in  facilities  similar  to  popular  timesharing  services.  CP/M  is  an 
"unbundled"  software  package  which  can  be  easily  adapted  to  any  8080  orZ-80 
computer  system  with  at  least  16K  of  main  memory  and  one  or  two  IBM- 
compatible  disk  drives.  The  field-modification  manual  provided  with  CP/M  has 
been  used  successfully  by  many  CP/M  users  in  customizing  CP/M  for  their  own 
hardware  configurations. 

Dl  DJGJTflL  RESEARCH 


wBSm..         -Mm 


Please  send  me  the  following: 

□  CP/M  Documentation  (Complete  set  of  6  manuals)  for  $25.00. 
D  CP/M  Documentation  and  CP/M  System  Diskette  for  $70.00. 

□  Free  CP/M  brochure  and  price  list. 

□  Information  concerning  high  level  languages  and  optional  packages. 

NOTE:  IMS  Associates  and  Digital  Systems  distriPute  CP/M  with  their  hardware  systems. 

D  Bank  Americard  No. Exp.  date D  Master  Charge  No.  _ 

Exp.  date D Check  or  M.O.  enclosed. 

California  residents  add  6%  sales  tax.  Amount  enclosed  

Name  Address 

City  


Dl  DJOJTflL  RESEARCH 


State 


Zip 


Post  Office  Box  579  •  Pacific  Grove,  California  93950 


Circle  1 1 1  on  inquiry  card. 


MAT  READ  a,b,c  . 

MATM  =  ZER 
MAT  M  =  CON 
MATM  =  IDN 
MAT  PRINT  a,b,c  . 
MAT  INPUT  V 
MAT  B  =  A 
MATC=  A+B 
MATC=  A-B 

MATC  =  A*B 

MATC  =  TRN(A) 
MATC=  (k)*A 

MATC=  INV(A) 


Read  the  specified  matrices 
or  vectors,  dimensions  pre- 
viously specified. 

Set  all  components  of 
matrix  M  equal  to  zero. 

Set  all  components  of 
matrix  M  equal  to  one. 

Set  up  square  matrix  M  as 
an  identity  matrix. 

Print  the  specified  matrices 
or  vectors. 

Call  for  the  input  of  a 
vector. 

Set  matrix  B  equal  to 
matrix  A. 

Set  matrix  C  equal  to  the 
sum  of  matrices  A  and  B. 

Set  matrix  C  equal  to  the 
result  of  matrix  B  sub- 
tracted from  matrix  A. 

Set  matrix  C  equal  the 
product  of  matrix  A 
multiplied  by  matrix  B. 

Set  matrix  C  equal  to  the 
transpose  of  matrix  A. 

Set  matrix  C  equal  to 
matrix  A  multiplied  by 
the  number  k  which  must 
be  in  parentheses  and  may 
be  given  by  a  formula. 

Set  matrix  C  equal  to  the 
inverse  of  matrix  A. 


Special  MAT  Functions.  .  .  . 

DET        Equals  determinant  of  a  matrix  after 
inversion. 

NUM       Equals  number  of  components  following  a 
MAT  INPUT. 

Table  4:  Matrix  Special  Functions  of  BASIC. 
The  addition  of  these  matrix  functions  to 
BASIC  is  one  of  the  most  common  exten- 
sions to  the  language's  capability.  For 
engineering  and  scientific  applications,  such 
functions  are  a  virtual  necessity. 


random  way  such  as  a  dice  roll  in  a  game. 
The  general  form  of  the  random  function 
reference  is: 

RND 
with    no    argument   needed.    If  a  particular 
BASIC  implementation  does  require  an  argu- 
ment, the  number  one  is  typically  used: 

RND(I) 

To  generate  a  random  single  digit  integer, 
the  following  instruction  might  be  used: 

40  LETX=INT(I0*RND) 
If  it  is  desired  to  generate  a  random  integer 
number  between  two  limits,  this  instruction 
may  be  used: 


60LETX=INT(A*RND+B) 
This  instruction  will  generate  an  integer 
random  number  between  A  and  B,  where  A 
is  larger  than  B.  Thus,  to  simulate  a  dice  roll 
for  a  game,  with  integers  between  1  and  6, 
use: 

INT(6*RND+1) 

To  aid  in  debugging  programs,  the  typical 
BASIC  RND  function  generates  the  same  set 
of  random  numbers  in  the  same  order  each 
time  a  program  is  run.  In  some  implementa- 
tions inserting  a  RANDOMIZE  statement  as 
the  first  statement  in  a  program  using 
random  numbers,  repeated  runs  of  the  pro- 
gram will  produce  different  results. 

User  Defined  Functions 

In  addition  to  the  standard  BASIC  func- 
tions, some  BASIC  interpreters  allow  up  to 
26  additional  functions  to  be  defined  with 
the  DEF  statement.  The  name  of  the  defined 
function  must  be  three  letters,  the  first  two 
always  being  "FN"  (eg:  FNA,  FMB,  ..., 
FNZ)  and  the  DEF  statement  may  appear 
anywhere  in  the  program.  Each  DEF  state- 
ment defines  a  single  function  and  it  can 
contain  any  combination  of  other  functions 
and/or  variables  besides  those  denoting  the 
arguments  of  the  function.  Any  variable  that 
is  not  an  argument  of  a  function  will  use  its 
current  value  in  the  program.  For  example, 
to  repeatedly  use  the  function: 

c*2  +  3X  +  Z 
define  the  function: 

DEF  FNE(X)  =  EXP(X**2)+3X+Z 
and    then    call    for   different    values    of   the 
function  by: 

FNE(2),  FNE(A+B),ctc 
The  current  value  of  Z  is  used  each  time  the 
function  is  called.  Also,  each  defined  func- 
tion may  have  zero,  one,  two,  or  more 
numeric  variables  as  arguments  of  the 
function. 

Examples: 

10  DEF  FNA=  3.1.16*(R**2) 

20  DEF  FNB(X,Y)  =  (X+Y)  /  (X*Y) 

30  DEF  FNR(A,B,C,D)  =  FNB(A,B)  + 
FNB(C,D) 

Multiple  line  defined  functions  are  con- 
structed by  dropping  the  equal  sign  and 
ending  the  function  definition  with  a 
FNEND  statement.  The  function  name  with- 
out arguments  is  used  as  a  temporary  vari- 
able to  compute  the  function's  value.  Multi- 
ple line  functions  usually  cannot  be  nested 
and  there  must  not  be  a  transfer  from  inside 
the  function  to  outside  its  range,  or  vice 
versa.  Also,  GOSUB  and  RETURN  state- 
ments are  not  typically  allowed  within  a 
multiple  line  defined  function. 


112 


DataSync 
DS-100 


Educated 
Terminal 


^r-   m 


v 


•    •    • 


Internal  microprocessor  control  for  high  reliability. 
True  word  processing  with  character  and  line  insert/delete. 
24  lines  by  80  characters  on  a  full  nine-inch  screen. 

Special  individual  function  keys  control  the  block  screen  send,  screen  protect, 
forms  mode,  tabs,  scroll  up  and  down,  print  page,  line  centering  mode,  and 
other  modes. 

A  full  cursor  control  key  pad  is  included. 
All  switches  are  Cherry  gold  cross  point  for  extra  long  life. 
A  full-function  light  pen  attaches  to  the  terminal  for  easy  control  of  all  dis- 
played characters  on  screen. 

Two  serial  RS232  ports  transmit  up  to  9600  baud. 

Tarbell  format  cassette  interface  reads  and  writes  up  to  4800  baud  to  and 
from  the  screen  or  your  computer. 

All  switches,  including  baud  rate,  parity  stop,  local-RS232  CRT  controls, 
and  on-off  are  accessable  from  the  front. 
Weighs  under  30  lbs.  including  strong  ABS  cabinet. 
Terminal  can  also  be  used  as  a  full  word  processor  or  text  editor. 


$695 
Kit 


$795 
Assembled 


DataSync  16K  RAM 

$298 


Circle  34  on  inquiry  card. 

Fast  access,  low  power,  dynamic  RAM  memory 
board  with  transparent  memory  refresh.  SI 00 
bus  compatible,  expandable  to  64K  Bytes. 

Assembled     — — 


Name 

Address.. 
City 


'Mail  this  coupon  NOW  for  fast  delivery ■ 


State  &  Zip . 


□  DS-100  Terminal   D  Kit   □  Assembled   □  DS-16K  RAM 
Add  $5  postage  &  handling  in  U.S.  /  Calif,  residents  add  6%. 

□  Enclosed  find  check  01  money  order  for  $= 

□  Master  Charge  # 

□  BankAmericard  # 


DataSync 

201  W.  Mill  /  Santa  Maria,  CA  93454   /  805/963-8678 


Example: 

10DEF  FNM(X.Y) 

20  LET  FNM  =  X 

30  IF  Y  =  X,  THEN  50 

40  LET  FNM  =  Y 

50  FNEND 
This  example  returns  the  larger  of  the  two 
argument   values  whenever  the  function  is 
called. 


ASC  (single  character  or  mnemonic  of  nonprintable  character) 

Returns  a  decimal  value  for  the  ASCII  code  of  the  argument. 

CHR$(numeric  formula) 

Opposite  function  to  ASC,  argument  is  truncated  to  an  integer  which  becomes  the 
content  of  a  one  character  string  which  is  returned. 

INSTR(numeric  formula,  string  formula,  string  formula) 

Searches  for  the  second  string  within  the  first  string.  Search  starts  at  character 
position  specified  by  the  numeric  formula  truncated  to  an  integer  or  at  the  first 
character  if  omitted.  Returns  the  position  of  the  first  character  in  the  substring  if 
found,  0  if  not. 

LEFT$(string  formula,  numeric  formula) 

Returns  a  substring  of  the  string  formula,  starting  from  the  left.  Substring 
contains  the  number  of  characters  specified  by  the  numeric  formula  truncated  to 
an  integer. 

LEI\l(string  formula) 

Returns  the  number  of  characters  in  its  argument. 

Ml  D$ (string  formula,  numeric  formula,  numeric  formula) 

Returns  a  substring  of  the  string  formula,  starting  at  the  character  position 
specified  by  the  first  numeric  formula  truncated  to  an  integer.  The  substring 
contains  the  number  of  characters  specified  by  the  second  numeric  formula 
truncated  to  an  integer,  or  the  substring  continues  to  the  end  of  the  string  if  the 
second  numeric  formula  is  omitted. 

RIGHT$(string  formula,  numeric  formula) 

Returns  a  substring  of  the  string  formula,  starting  from  the  right,  containing  the 
number  of  characters  specified  by  the  numeric  formula  truncated  to  an  integer. 

SPACE$(numeric  formula) 

Returns  a  string  of  spaces,  the  length  specified  by  the  numeric  formula  truncated 
to  an  integer. 

STR$(numeric  formula) 

Returns  a  string  representation  of  its  argument  (the  number  is  converted  to  a 
string). 

VALIstring  formula) 

The  opposite  function  of  STR$.  Returns  the  number  represented  by  the  string 
formula  (the  string  is  converted  to  a  number). 

In  addition  to  these  functions,  the  CHANGE  statement  is  used  to  convert  between 
strings  and  numeric  data  and  vice  versa  as  follows: 

CHANGE  [string  formula]  TO  [numeric  formula] 
Changes  the  string  specified  to  a  numeric  vector.  The  zero  element  of  the  vector  will 
contain  the  number  of  characters  in  the  string  and  the  decimal  ASCII  code  of  the  letters 
will  be  stored  in  the  numeric  vector.  The  statement: 

CHANGE  [numeric  vector]  TO  [string  variable] 
changes  the  numeric  vector  to  a  string.  The  zero  element  of  the  vector  must  contain  the 
number  of  characters  in  the  desired  string. 

Table  5:  A  "typical"  set  of  string  manipulation  functions  implemented  in  a 
BASIC  interpreter.  This  table  lists  functions  found  in  the  author's  experiences 
with  BASIC  on  Digital  Equipment  Corporation  computers;  similar  sets  of 
string  functions  are  often  implemented  by  other  "extended  BASIC" 
interpreters. 


Vectors  and  Matrices 

Since  operations  on  lists  and  tables  occur 
frequently,  a  special  set  of  matrix  instruc- 
tions and  functions  are  usually  available  in 
BASIC.  The  list  of  typical  MAT  instructions 
and  functions  plus  a  brief  description  of 
their  operation  is  found  in  table  4.  Many  of 
the  matrix  statements  require  special  condi- 
tions to  exist  in  order  to  be  legal  or  may 
allow  operations  on  vectors  as  well  as 
matrices.  While  every  vector  has  a  zero 
component  and  every  matrix  has  a  zero 
column  and  row,  these  are  ignored  by  MAT 
instructions.  Any  numeric  array  referenced 
in  a  MAT  statement  other  than  a  MAT 
INPUT,  will  be  set  up  as  a  matrix  unless 
specifically  declared  as  a  vector  in  a  DIM 
statement. 

Strings 

So  far,  only  operations  dealing  with 
numeric  information  have  been  discussed; 
but  some  forms  of  BASIC  also  process 
alphanumeric  information  in  the  form  of 
strings.  A  string  is  a  sequence  of  characters 
including  letters,  digits,  spaces,  or  some 
other  printing  characters.  In  BASIC  it 
cannot,  however,  contain  a  line  terminator 
such  as  a  line  feed,  carriage  return,  form 
feed,  or  vertical  tab.  Strings  are  normally 
enclosed  in  quotes  (eg:  "ANSWER")  when 
used  as  string  constants,  but  may  be  omitted 
in  some  instances. 

Variables  may  be  used  for  simple  strings 
and  string  vectors  but  not  for  matrices.  Any 
variable  or  vector  name  followed  by  a  dollar 
sign  ($)  stands  for  a  string: 

A$,  B2$,  orC$(l) 
String  variables  or  constants  are  used  just  as 
numeric  quantities  in  most  BASIC  state- 
ments. However,  numeric  and  string  data  are 
kept  in  two  separate  data  blocks  and  are 
utilized  independently  of  each  other.  The 
RESTORE  statement  discussed  earlier  resets 
both  data  pointers  to  the  beginning  of  the 
data  blocks.  A  typical  implementation  trick 
to  reset  only  the  numeric  data  pointer  is  to 
use:  RESTORE*,  and  use  RESTORES  to 
reset  only  the  string  data  pointer. 

Table  5  shows  some  of  the  possible 
functions  for  manipulating  strings  in  BASIC 
in  some  implementations. 

Other  Features 

Many  BASIC  software  systems,  especially 
large  time  sharing  systems,  sometimes  allow 
special  operations  involving  data  files  and 
special  formating  of  data.  An  example  is  the 
PEEK  and  POKE  facility  which  is  used  in 
Altair  BASIC  for  bit  level  manipulation.  It  is 


114 


always  best  to  refer  to  the  BASIC  program- 
ming manual  for  the  particular  implemen- 
tation being  used  as  I  have  pointed  out  many 
times  before.  Always  check  what  features 
are  offered  and  how  to  use  them,  since  they 
can  vary  drastically  from  system  to  system. 
There  may  also  be  special  editing  or 
operating  commands  available  depending, 
again,  on  the  system  used. 

In  Closing  .  . . 

Now  that  the  general  statements  and 
functions  have  been  discussed  and  some  of 
the  more  advanced  features  have  been  intro- 
duced, the  best  way  to  actually  learn  the 
BASIC  language  is  by  hands-on  experience. 
Find  a  system  with  BASIC,  check  the 
available  BASIC  features,  then  start  with 
small,  simple  programs.  In  no  time  at  all  you 
should  be  able  to  program  almost  anything 
desired.  BASIC  is  an  extremely  easy  lan- 
guage to  learn  and  use  so  don't  let  the  term 

"HIGH  LEVEL  LANGUAGE" 
frighten  you  away.  Look  for  future  articles 
on  programming  techniques,  games,  and 
applications  as  BASIC  becomes  available  for 
more  and  more  microcomputer  systems. 
BASIC  programs  should  be  very  easy  to 
reproduce  and  convert  for  various  specific 
systems,  including  microcomputers." 


What's 

New? 


A  New  Microcomputer  Series  from 
CGRS 

CGRS  Microtech  Inc,  POB  368, 
Southhampton  PA  18966,  has  an- 
nounced a  new  line  of  microcomputers 
called  the  6000  series  which  are  all 
Allah'  bus  compatible  and  based  on  the 
Mos  Technology  6502  microprocessor. 
The  Microputer  I  is  a  3  board  tutorial 
system  featuring  256  bytes  of  pro- 
grammable memory  for  $229.95.  The 
Microputer  II  includes  2K  bytes  of 
programmable  memory  with  room  for 
up   to  4  K    bytes   of  erasable  read  only 


jwaoH 


-'*9^*frfamt*PlWW&*~'' 


3N$  . 


Teach  your  System  to 
type  with  a 

IYFEAWAY 

Selectric  I/O  Writer 
interface 


Interface  any  Selectric  I/O  Writer 
to  S-100  computers  with  a  TYPE- 
AWAY  Selectric  I/O  Writer  Inter- 
face.TYPEAWAYis  compatible  with 
any  model  731  or  735  I/O  Writer, 
including  versions  with  correspon- 
dence or  BCD  coding,  24  or  48  volt 
solonoids,  and  common  anode  or 
common  cathode  diodes.  TYPE- 
AWAY  is  a  complete  package  of 
everything  needed  to  interface  any 
model  731  or  735  I/O  writer  to  an 
S-100  computer,  including; 

*  S-100  compatible  PC  board  with 
solonoid  drivers,  input  ports, 
and  PROM  memory. 

*  Complete  cables  and  connectors 

*  Power  supply  for  24  or  48  volt 
systems. 

Optional  word  processing  software 
is  also  available. 

Add  professional,  economical  hard 
copy  to  your  S-100  system  with  an 
IBM   Selectric   I/O   Writer   and   a 
TYPEAWAY  interface. 
Prices 

Kit $225 

Assembled 325 

Documentation 25 

Call  toll-free  anytime  to 

place  credit  card  orders: 

800/648  5311 


MQC^OMATOM 


MICROMATION  INCORPORATED 

524  UNION  STREET 

SAN  FRANCISCO,  CA.  94133 

415/398-0289 


115 


Circle  35  on  inquiry  card. 


memory.  The  price  is  $389.95.  The  most 
sophisticated  system  in  the  series  is  the 
Microputer  III,  a  complete  microcom- 
puter system  upwards  compatible  with 
the  first  two  systems.  Contact  the  manu- 
facturer for  further  information." 

Circle  572  on  inquiry  card. 


'fY£hon 


Breadboards  Available  for  PDP-1 1  and 
PDP-8/A  Users 


ADI 

306 

ACI 

316 

SUE 

326  , 

SSI 

336 

AM 

346  i        i 

XRE 

356 

ORI 

366 

CPI 

376 

POP  B  3C1 

POPD  J?l 

POPH  341 

POP  PSW  361 

PUSHB  i'^ 

PUSH  0  325  ' 

PUSH  ti  :«!> 

PUSH  PSW  360 


ST AX  a         002  . 
LDAXB         012 
STAX  0         022 


Uncond 

A*0 

A  =  0 

Cy  =  0 

Cy=  1 

Prty  =  Odd 

Pit/ =  Even 

Bit  7  =  0 


1 


I    Ul  SPQ61 

DAD  SP071      RrGISTFR  FAIR 

1MX  SP063       OPERATIONS 

OCX  SP  073 


NOP 

000  1 

HLT 

166 

OUT 

323 

IN 

333 

067 
077  j 


:"H'-'. 


SUB      f.1 22li 

SBB      H2M      MATH  &  LOGICAL 
OPERATIONS 


M  2JG 
1.1  26G 


ALL  FLAGS  ArFLCTIO 


Attention  Individuals,  Clubs  and 
Computer  Stores:  An  8080  Octal  Code 
Card  Is  Now  Available 

Tychon   Inc  has  announced  this  new 
8080  Octal  Code  Card.  The  code  card  is 


i  "">  M06.1 
OCR  ,,I0C5 
MV!      M06G 


MOV  A  M176 

»O»0  M10G 

move  mug 

MOV  0  ,,,  126 

'■'OVE  M136 

MOVH  Mi.,6 

HOVL  U156 

I  WO'  l«  M  1G6 


i    ONLY  CARRY  AFFECTED 


l 

^ 


Douglas  Electronics  has  announced 
the  availability  of  a  complete  line  of 
breadboards  designed  to  be  compatible 
with  Digital  Equipment  Corporation's 
PDP-11  and  8/A  minicomputers. 

The  glass  epoxy  boards,  which  feature 
electroplated  solder  circuits  and  gold 
connector   tabs,   come    in    a   variety    of 


configurations  and  options  which  in- 
clude extender  boards  with  sockets,  wire 
wrap  boards  and  breadboards  for  custom 
logic  circuitry.  Contact  Douglas  Elec- 
tronics Inc,  718  Marina  Blvd,  San 
Leandro  CA  94577. 

Circle  573  on  inquiry  card. 


"We  may  have  the  surplus 

electronics 

you  need!" 


Terminal/Keyboard 
With  Schematics 
S250.00 


•  CRT  Terminals 
•Assemblies 

Tape  Drives      $800.00 


•  Peripherals 

•  Components 

Keyboards     S40.00  to  $60.00 
(ASCII  Encoded) 


Equipment  Cabinets       $45.00  to  S60.00 
(19"  With  Fan) 


Send  for  a  free  catalog  or  call 
Bill  Blaney,  toll  free  800  258-1036 

in  NH  603-885-3705 

(i¥l  Come  to  our  showroom 

wufLdwiqe  ELECTFiunicajric. 

10  Flagstone  Drive,  Hudson,  New  Hampshire  03051 


a  slide  rule  like  aid  for  programming  and 
debugging  8080  software  in  octal  nota- 
tion. It  contains  all  the  mnemonics  and 
their  corresponding  octal  codes.  The 
instructions  are  all  color  coded  to  indi- 
cate which  flags  are  affected  during  exe- 
cution. The  pocket  sized  card  measures 
6.5  by  3  inches  (16.5  by  8  cm)  and  it 
provides  the  instructions  in  a  neat, 
logical  format  for  quick  reference. 

The  back  side  of  the  card  is  printed 
with  an  ASCII  code  chart  for  all  128 
characters  plus  the  8080  stalus  word  and 
register  pair  codes. 

Delivery  of  the  8080  Octal  Code 
Card  is  immediate  and  the  price  is  $2.95 
postpaid.  Quantity  discounts  start  at  ten 
units,  and  custom  imprinting  is  also 
available.  According  to  Tychon,  a  hexa- 
decimal version  of  the  card  will  be 
available  in  the  near  future. 

For  further  information  write 
Tychon  Inc,  POB  242,  Blacksburg  VA 
24060.» 

Circle  574  on  inquiry  card. 


A  New  Way  to  Do  Slit-N-Wrap 

Vector  Electronic  Company,  1 2460 
Gladstone  Av,  Sylmar  CA  9 1 342,  has 
just  sent  along  this  photo  of  a  neat  new 
addition  to  their  line  of  Slit-N-Wrap 
tools,     the     P160-4T1      pistol     gripped 


/ 


3 


110  VAC  powered  wrapping  tool.  This 
$80  tool  will  accept  the  PI80 
Slit-N-Wrap  tool  bit,  or  a  standard  wire 
wrapping  attachment  in  the  form  of  the 
P160-2A  wrapping  bit.  While  Slit-N-Wrap 
can  be  done  by  hand,  it  becomes  much 
more  convenient  when  it  is  powered  as 
with  this  tool.  (Because  the  Slit-N-Wrap 
technique  requires  no  stripping  of  wire, 
it  tends  to  be  somewhat  faster  than 
standard  wire  wrap  as  a  matter  of  course, 


Circle  36  on  inquiry  card. 


116 


since  the  lool  is  always  held  in  one's 
hand  and  is  never  pul  down  for  the 
stripping  operation  as  in  wire  wrap  with 
reel  wire.)" 

Circle  575  on  inquiry  card. 


IMSAI  Brochure  and  Catalogue 

A  beautiful  four  color  brochure  out- 
lining the  IMSAI  product  family  came 
our  way  recently.  In  the  same  package 
was  the  current  price  list  of  this  family 
of  computers  and  computer  products, 
which  may  be  inspected  at  many  local 
computer  stores.  A  full  catalog  is  also 
available  according  to  the  brochure,  at  a 
price  of  $1.  Write  IMSAI  Manufacturing 
Corporation,  14860  Wickes  Blvd,  San 
Leandro  CA  94577." 

Circle  576  on  inquiry  card. 


Altair  Bus  Floppy 


Synetic  Designs  Company,  POB 
2627,  Pomona  CA  91  766,  has  sent  along 
this  picture  of  their  new  "ready  to  use" 
disk  system  for  Altair  compatible  8080 
based  computers.  The  product  is  called 
the  FDS-2,  and  it  employs  iCOM 
standard  size  floppy  disk  drives.  The 
total  package  includes  the  iCOM  execu- 
tive system,  text  editor  and  assembler 
for  the  8080,  plus  the  custom  "executive 
handler"  provided  by  SDC  to  allow 
user-specific  attributes  of  the  executive. 
From  one  to  four  drives  may  be  attached 
to  the  controller,  with  two  drives  shown 
in  this  photograph.  Maximum  on  line 
capacity  with  four  drives  is  just  over 
1  Mb.  The  recording  format  is  IBM  3540 
and  3740  compatible  to  allow  transfer  of 
data  to  and  from  other  computer 
systems  on  floppy  disk  cartridges.  Files 
may  contain  source  data,  program  object 
data  or  user  generated  data.  The  drive 
may  be  seen  at  Computer  Mart  of  New 
Jersey  and  other  stores  nationwide. 
Delivery  is  quoted  as  three  weeks  ARO 
lor  small  orders;  price  was  not  quoted  in 
the  press  release  materials." 

Circle  577  on  inquiry  card. 


■o 
3 


ANNOUNCING 

Z80 

SEMINARS 

AUGUST  22-26 

(the  week  preceding  the  Atlantic  City  convention,  PC  77) 
CHOOSE  FROM  ONE  OF  THE 


7    FIVE  DAY    d      r%    EVENING 
SEMINARS  "        ^SEMINARS 

BRING  THE  WHOLE  FAMILY 

(Recreation  Facilities  Available) 

REASONABLE 

Individual/Family  Rates  for  a  limited  number  at  the  college 
on  a  first  come,  first  served  basis 

TRANSPORTATION 

available  to  the  ATLANTIC  CITY  CONVENTION 

Software  courses  (DAY) 

Programming  in  Basic  for  the  r'C  owner. 

An  Introduction  m  the  Mask  language.  From  beginning  t<>  writing  application 

programs.  Emphasis  tin  TDIs  (IK  and  I2K  Bask  fat  the  780.  Includes  inlro  l<> 
TBI's  FORTRAN,  S199 

Assembly  Language  Programming  (or  the  Z80  8080 

An  introduction  to  assembly  language  programming.  First  (.overs  bobo 

instructions  mil  then  brandies  into  the  extra  instructions  available  for  the 
Z-B0.  Includes  inlro  to  TOL's  /-B0  Monitor  and  Macro-Assemhier  and  also 
covers  applications  in  interfacing  and  control.  S249 

Advanced  Assembly  Language  Programming  for  the  Z-80 

For  someone  who  knows  the  HOBO.  Covers  added  7-80  instructions  and  how  to 
gel  the  most  out  of  them.  Imphasis  on  use  of  TDl's  Macro- Assembler. 
Application  to  digital  Ingii  replacement  and  process  control.  S2!t!) 

FORTRAN  IV 

An  introduction  to  the  FORTRAN  language.  From  beginning  to  writing  of 
application  programs.  Emphasis  on  TDL's  ANSI  standard  FORTRAN  IV  for  the 
Z-flO.  $289 

Word  Processing  with  a  Text  Editor  and  Formatter 

Introduction  to  the  use  of  the  Tent  Editor  and  Text  Output  Processor  for 

achieving  basic  word  processing  capabilities.  Emphasis  on  TUL's  Text  Editors 
and  Text  Output  Processors,  familiarization  with  system  requirements,     $299 

Hardware  courses  (DAY) 

Introduction  to  Hobby  Computing 

A  survey  course  dealing  in  an  exploration  of  the  Hobby  computing  field  and 
delining  the  basics  needed  to  lie  understood  in  order  to  gel  started.         Sinn 

Digital  Logic  Circuits 

Instruction  in  digital  logic  circuits  covering  the  7400  TTL  and  the  CMOS  series. 
Codes,  registers,  counters,  memory,  combinatorial  logic,  etc  $199 

Evening  Workshops 

How  to  Setup  a  Computer  Store 

Guest  lectures  from  owner  operators  ol  computer  stores  and  microcomputer 
manufacturers.  How  tQ  become  a  dealer.  How  Id  get  a  franchise.  How  to 
operate  a  business,  How  In  set  up  a  service  facility...  and  more.  $99 

Kit  Building  Lab 

Instruction  and  guidance  on  kit  building.  Bring  your  kits!  SPECIAL:  Anyone 
taking  delivery  on  a  TDl  product  during  the  course  (must  be  ordered  in 
advance-)  will  receive  this  workshop  FREE.  Others  pay  only...  $49 

SPONSORED  jointly  by 

TECHNICAL  DESIGN  LABS,  INC.  (TDL) 

Princeton,  N.J.  and 

TRENTON  STATE  COLLEGE 

Trenton,  N.J. 

For  registration  forms  and  brochure  write: 

Z-80  SEMINARS        Office  of  Continuing  Education 

TRENTON  STATE  COLLEGE       TRENTON,  NEW  JERSEY  08625 


Art 

by 

Duane 

Bibby 


How  Far — Which  Way? 


Rene  E  Pittet 
WMU  Physics  Dept 
Kalamazoo  Ml  49008 

Assisted  by  M  Davidson 


a)   ARC  SIN  X    =   X 


Did  you  know  that  your  computer  can 
answer  the  questions  of  how  far  and  which 
way  for  you  in  microseconds  for  macrodis- 
tances?  At  least  my  SWTPC  6800  can  with 
its  8  K  BASIC  high  level  compiler  language. 

The  usefulness  of  this  program  will  be 
apparent  to  anyone  who  sails  a  boat  or  flies 
an  airplane.  By  inputting  longitude  (degrees 
and  minutes)  and  latitude  of  the  starting 
point  first,  and  the  destination  second,  the 
program  will  print  out  the  distance  in  statute 
miles,  or  nautical  miles  with  a  minor  change, 
and  the  true  bearing.  Look  up  the  variation 
of  magnetic  north  in  your  area  and  add  that 
correction  for  a  magnetic  compass  heading; 
or  better  yet,  add  it  into  the  program. 

The  program  of  listing   1    is  offered  as  a 


1           ,            1x3          c            1x3x5                 1x3x5x7     n 
- x3  + : —  X5  + : = =  X7   + : ; —  X9 


2x3 


b)  ARC  SIN  X   =    X   + + 

6  40 


2x4x5 


5  x  X°         1  5  x  X  ' 


2x4x6x7 


2x4x6 


336 


105  x  XB 
3456 


radians 


Figure  7 :  A  series  expansion  of  the  ARCS  IN  function,  as  found  (above)  and 
as  evaluated  partially  for  use  in  the  expression  in  listing  I  at  lines  158  and 
160  of  the  program. 


model  to  start  from  and  can  be  modified  or 
elaborated  on  according  to  the  wishes  of  the 
user.  It  is  based  on  what  is  known  to 
cartographers  as  a  Lambert  Conformal  Conic 
Projection  map.  This  type  of  map  uses  a 
fixed  reference  point  in  its  projection,  so  the 
method  is  less  accurate  the  farther  north  or 
south  you  go,  into  Canada  or  Alaska  for 
example,  from  the  reference  point  in  the  US. 
However,  it  will  be  quite  accurate  within  a 
restricted  area  such  as  that  covered  by  an 
FAA  aeronautical  regional  or  sectional  chart. 

The  requirement  for  this  program  grew 
from  my  Civil  Air  Patrol  activities  when  we 
search  for  downed  aircraft  (a  true  hardware 
crash)  and  send  rescue  teams  out  to  find 
them.  Usually  we  have  an  airport  to  start 
from  and  grids  to  search  in  by  air.  The 
downed  aircraft  is  spotted  visually  or  by 
reception  of  a  signal  from  its  emergency 
locator  transmitter  (ELT).  If  found,  its  coor- 
dinates are  radioed  back  to  the  mission 
coordinator.  He  then  dispatches  the  ground 
teams  to  the  rescue  and  here  is  where  the 
questions  "how  far?"  and  "which  way?"  are 
answered  by  the  computer. 

The  routine  uses  the  trigonometric  solu- 
tion of  a  right  triangle  to  determine  the 
distance  (hypotenuse)  and  direction  (arcsine 


118 


of  X).  The  sides  of  the  triangle  X5  and  Y5 
are  the  differences  between  the  two  sets  of 
coordinates  of  longitude  and  latitude. 

To  explain  the  program  a  little,  notice 
that  the  ARC  SIN  X  is  a  special  subroutine 
which  had  to  be  created  since  ARC  SIN, 
ARC  COS  and  ARC  TAN  functions  are  not 
included  in  SWTPC  8  K  BASIC.  This  ARC 
SIN  X  function  is  performed  by  use  of  the 
trancendental  formula  shown  in  figure  1a 
which  is  reduced  to  the  equation  of  figure 
lb.  The  formula,  translated  into  BASIC,  is 
shown  on  lines  1  58  and  160  of  listing  1., 

Since  the  ARC  SIN  X  formula  above  is 
less  accurate  from  45°  to  90°,  we  switch  and 
use  90°  -COS  of  the  complimentary  angle  of 
the  right  triangle  and  get  the  same  resolution 
as  when  the  angle  is  0°  to  45  .  This  is 
written  in  BASIC  in  lines  155,  163  and  168 
to  175.  Also,  notice  that  in  lines  58  and  59  a 
very  small  number  (l.E-9)  was  added  to  the 
two  sides  X5  and  Y5  of  the  right  triangle 
X5,  Y5,  D.  This  extremely  small  error 
eliminates  the  problem  of  dividing  into  zero 
at  the  90°,  180°,  270°  and  360°  points  of 
the  compass  when  one  or  the  other  of  these 
sides  of  the  triangle  are  zero.  SWTPC  8  K 
BASIC  doesn't  like  zeros  in  your  math 
formulas. 

In  line  60  the  hypotenuse  of  the  triangle, 
D,  is  multiplied  by  1.1516  to  get  statute 
miles.  This  conversion  factor  assumes  that 
your  calculations  have  been  in  British  nau- 
tical miles  which  have  6080  feet  to  the  mile. 
If  your  calculations  have  been  in  American 
nautical  miles,  with  6076.1 1  5  feet  to  a  mile, 
the  conversion  factor  would  be  1.1508. 

In  lines  50  and  54  the  numbers  44.89  and 
74.82  were  derived  from  the  ratio  of  nau- 
tical British  miles  per  degree  of  longitude 
versus  latitude  in  the  northern  hemisphere  at 
about  43°  north  latitude.  In  other  parts  of 
the  globe,  farther  north  or  south,  it  would 
be  advisable  to  recalculate  to  maintain  accu- 
racy. (The  distance  of  one  degree  of  longi- 
tude gets  smaller  and  smaller  as  you  go  north 
or  south  from  the  equator.) 

To  correct  for  the  magnetic  variation  in 
your  area  add  the  degrees  of  correction  at 
lines  162  and  174.  For  example,  if  the 
aeronautical  chart  shows  3°  west  variation, 
then  add  +3  to  R5's  value. 

One  last  comment:  the  latitude  and  longi- 
tude are  entered  as  a  decimal  number.  The 
digits  to  the  left  of  the  decimal  are  degrees 
and  to  the  right,  minutes;  seconds  are  not 
used.  The  program  sorts  it  all  out  and 
understands  what  you  are  inputting  by  using 
the  INTEGER  functions  in  lines  50  to  56. 

Try  it  for  aircraft  flight  planning  or  a 
sailing  trip  in  large  bodies  of  water,  then 
check  the  accuracy  by  actual  measurement 
on  an  aeronautical  chart." 


PRINT      " " 

LINE  =  64 

PRINT  "TO  COMPUTE  DISTANCE  &  DIRECTION" 

PRINT 

PRINT  "ENTER  LONGITUDE  (XX. XX)  AND  LATITUDE  (YY.YY)  OF  BOTH  PLACES: 

PRINT 

PRINT  "ENTER  X1,  Y1" 

INPUT  X1,  Y1 

PRINT 

PRINT  "ENTER  X2,  Y2" 

INPUTX2,  Y2 

DIGITS  =  2 
28  GOSUB  50 
36    PRINT 

PRINT  " - " 

PRINT 
44   PRINT  "TRY  ANOTHER  SET " 

46  PRINT 

47  GOTO  18 

48  STOP 

50   X3  =  44.89*INT(X1)+74.82*(X1-INT(X1)I 
Y3  =  60*INT(Y1)  +  100*(Y1-INT(Y1)) 
X4  =  44.89*INT(X2)+74.82*(X2-INT(X2)I 
Y4  =  60*INT(Y2)  +  100*(Y2-INT(Y2)) 
X5=  (X3-X4)*SGN(X3-X4)  +  1.E-9 
Y5  =  (Y3-Y4)*SGN(Y3-Y4)  +  1.E-9 

60  D     =  1.1516*SQR(X512+Y5t2) 

61  PRINT 
GOSUB  150 

PRINT  "DISTANCE  =  ";D 
PRINT  "(STATUTE  MILES)" 
PRINT 

IF  X4>X3  THEN  74 
IF  Y4>Y3  THEN  84 
GOTO  88 

IF  Y4  Y3  THEN  80 

PRINT  "TRUE  BEARING  =  ";270-R5,"  DEG'S" 
RETURN 

,;270+R5;"  DEG'S" 


00 
05 
10 
12 
14 
16 
IS 
20 
22 
24 
26 
27 


38 
42 


52 
54 
56 
58 
59 


62 
63 
64 
65 
68 
70 
72 
74 
76 
7f 
80 
82 
84 
86 
88 
90 


PRINT  "TRUE  BEARING  =  ' 

RETURN 

PRINT  "TRUE  BEARING  = 

RETURN 

PRINT  "TRUE  BEARING  -  ' 

RETURN 


;90-R5,"  DEG'S" 


;90+R5;"  DEG'S" 


150  REM  ARC  SGN  X  SUB-ROUTINE 

154  S  =  Y5/D 

155  C  =  X5/D 

158  81  =  S+(Sr3/6)  +  (3*SI5/40)  +  (15*St7/336) 

160  S2  =  105*SI9/3456 

162  R5  -  (S1+S2)/. 017453293 

163  IF  R5>45  THEN  168 

164  PRINT 
166  RETURN 

168  CI  =  C+(C13/6>  +  (3*C  5/40) 

170  C2=  (15*CI7/336)  +  (105*Cf9/3456) 

172  R4  =  (C1+C2)/. 017453293 

174  R5  =  90-R4 

175  GOTO  164 


TO  COMPUTE  DISTANCE  &  DIRECTION 

ENTER  LONGITUDE  (XX. XX)  AND  LATI 
TUDE  (YY.YY)  OF  BOTH  PLACES 

ENTER  X1,  Y1 

7  83.00 

?  42.24  DETROIT  CITY  AIRPORT 

ENTER  X2,  Y2 

7  87.55 

7  41.58  CHICAGO  O'HARE 

DISTANCE  -  255.92 
(STATUTE  MILES) 

TRUE  BEARING  =  264.16  DEG'S 


TRY  ANOTHER  SET - 

ENTER  X1,  Y1 

Listing  1 :  A  BASIC  program  used  to  calculate  range  and  bearing  information 
from  navigational  coordinates.  (This  program  was  typeset  from  a  hand  typed 
listing  of  the  original,  which  had  been  developed  and  debugged  from  a 
computer  sans  hard  copy.)  In  the  sample  printout,  user  input  is  preceded  by  a 
question  mark  query. 


119 


NOW!! 

Z- 80  Power    for  the  S-loo 

bus    without  getting  ridof 


your  CPU  card. 


~> 


$159.95 


assembled 


*>**tp±i  ?"w4s4saia«  *  w.y 


ZSC-80: 


UU  1  IxLJiy  ILiU     a  leader  in  low  cost,  low  power  ram  boards  has  just  announced  it's  Zj    BO    —   oO 
piggy  back  card.     This  plug  -  in  board  enables  you  to  use  your  existing  IMSA1,  ALT  AIR  CPU  card 
and  upgrade  your  system,  to  a  Z  —  80. 

The  card  design  is  such  that  all,  you  do  is  pull  out  your  8080  and  8212  chips,  plug  in  the  Board 
to  the  8080  socket  itself  and  the  ribbon  cable  to  the  8212. 

A  system  monitor,  on  paper  tape,  is  included  with  the  board  as  well  as  a  280  Manual  and  Theory 
of  Operation  Manual. 

Dutronics  will  also  supply  all  additional  software  at  no  cost,  when  it  becomes  available 
The  price  is  $159.95  (assembled)  only.    OFF  THE  SHELF. 


^ 


BYTE  OF  PHILADELPHIA 
1345  W.  Lancaster  Ave. 
Rryn  Mawr,  Perm.  19010 
(215)  525-7712 

BYTE  OF  PALO  ALTO 
2227  El  Camino 
Palo  Alto,  Co.  94.306 
(415)  327-8080 

110B0KEN  COMPUTER  WORKS 
20  Hudson  Place 
Hoboken,  N.J.  07030 
(201  120-1644 


BYTE  OF  WESTMINSTER 
14300  Reach  Blvd. 
Westminster.  Ca.  92683 
(714)894-9131 

BYTE  OF  SANTA  CLARA 
3400  El  Camino  Real 
Santa  Clara,  Ca.  95051 
(408)249-4221. 


for  more  information  call  or  write  to 

R.H.S.  MARKETING 

2233  El  Camino  Real 

Palo  Alto,  California  94306 

(415)321-6639 

DEALER  INQUIRES  INVITED 


BofA  &  MASTERCHARGE  ACCEPTED 


~J 


16384  BYTES  for  $485.00 

assembled  (with  sockets)  :  tested  -  burned-in  -  guaranteed 


A  new  high  in  S100  bus  memory  cost  effectiveness, 
(with  sockets),  tested,  burned—in  and  guaranteed, 
memory  chips  (the  same  ones  used  by  the  ton  in  IB 
ible  memory  systems )  combined  with  self  containe 
logic,  yield  a  memory  system  with: 

•  Low  power  consumption,  total  board  5  watts. 

•  Transparent  refresh,     which  means  the 
memory  looks  static  to  the  outside  world. 

•  No  waiting.     In  fact,  xrdy  is  not  even  con- 
nected to  the  memory. 

•  Full  DMA  capability 

•  Reliable,  low  level  clock  and  control 
signals. 

Dynabyte 

UyTlQsUy 16        brings   to  the  S  —  100  Bus  a  state  of  the  art,  industrial  quality  memory  system. 
J6K  on  a  single  board  for  $485.00,  Guaranteed  for  1  year. 


J 


BYTE  OF  PASADENA 
496  So.  Lake  Ave. 
Pasadena,  Ca.  91109 
(213)684-3311 

BYTE  OF  SANTA  CLARA 
3400  EI  Camino  Real 
Santa  Clara.  Ca.  95051 
1408)249-4221 

BYTE  OF  WALNUT  CREEK 

2989  N.  Main  St. 

Walnut  Creek.  Ca.  94596 

(415)933-6252 


BYTE  OF  SAN  MATEO 
1200  W.  Hillsdale  Blvd. 
San  Mateo,  Ca.  94403 
(415)  341-4200 

BYTE  OF  PALO  ALTO 
2227  El  Camino 
Palo  Alto,  Ca.  94306 
(415)327-8080 


for  more  information  call  or  write  to: 

R.H.S.  MARKETING 

2233  El  Camino  Real 

Palo  Alto,  California  94306 

(415)321-6639 

DEALER  INQUIRES  INVITED 


BofA  &  MASTERCHARGE  ACCEPTED 


Circle  37  on  inquiry  card. 


Add  Cursor  Control  to  Your  TVT  II 


Brother  Thomas  McGahee 
The  Salesian  Center 
80  S  Sixth  St 
Columbus  OH  43215 


If  you  own  a  TVT  II  and  would  like  a 
simple  circuit  to  provide  for  operation  of  the 
cursor  and  erase  functions,  then  consider  the 
circuit  shown  in  figure  I.  This  simple  circuit 
will  accept  ASCII  control  characters  and 
decode  them  in  a  manner  suitable  for  con- 
trolling all  of  the  cursor  control  and  erase 
functions,  and  it  even  has  a  few  outputs  that 
can   be   used   to   provide  user  defined  func- 


Figure  I:  Diagram  for  the  TVT II  cursor  controller.  ICI  is  a  4  to  16  line 
decoder  that  will  select  which  control  command  is  wanted.  Transistor  Qi  is  in 
the  circuit  to  make  it  compatible  to  the  Southwest  Technical  Products'  screen 
read  and  UART  boards.  Diodes  D1,  D2  and  D3  are  in  the  circuit  to  protect 
ICI  when  it  is  connected  in  parallel  to  the  output  of  a  gate  on  the  main 
TVT  II  board.  IC2  is  wired  as  a  one  shot  to  activate  the  Sonalert  when  a 
control  G  is  pressed. 


tions,   such   as  enabling  external  devices  or 
turning  on  bells  and  whistles. 

In  the  version  presented  here  several 
functions  are  provided,  including  home, 
erase  to  end  of  line,  erase  to  end  of  frame, 
cursor  up,  cursor  down,  cursor  left,  cursor 
right,  and  bell.  In  addition  there  are  five 
other  unused  codes  that  may  be  assigned  any 
way  you  wish.  Control  |  and  M  are  unused, 
since  the  TVT  II  already  decodes  these  as 
carriage  return  and  line  feed. 

How  it  Works 

IC1  decodes  the  incoming  ASCII  char- 
acter, and  selects  one  of  its  16  outputs  to 
go  to  logical  zero  whenever  bits  5,  6  and  7 
are  all  logical  zero.  The  TVT  II  data  lines  are 


J4  [D>- 

+  5V 


J4   [9> 


J4    [8> 


B2 


BITS    ; 

J4    [0s— 


J4  n> 


B4 


BIT5       J4  [5>- 


GND 
J4  [2> 


IN914(3) 


ICI 
74154 


4 
6 

7 
8 
II 
12 
14 
GND  l5 


H4 


-TX>  J3 
-[F>J3 


H* 


12 


ENABLE    IF  0 


-HC 


CI 
lOOpF 


Rl 

2.2K 
I VW- 


R2 
IK 


-U>  J3 

-n>  J3 

-G>J3 

-Q[>  J3 

-E>  J3 


:o 


nR3 
IOK 


tK 


C2 

iocyF 


B       VCC     PRINT    CEXT 


-<6~1  J3  - 
-<J0]   J3 


COMPUTER 
CURSOR   SIGNAL" 


01 
2N2222 


IC2 
74121 


REXT 
CEXT 


R4 
IK 


m 


MALLORY 

sc-s 

SONALERT 


02 

2N2222 


CURSOR   CONTROL    EQUIVALENT  LOGIC: 


Oi 


•/         SIGNAL 
I 


-»  TO    ICI    PIN  18 


-0   IF   B6-  B7-  0 


J3    AND  J4  ARE  PART  OF  THE   TV-H    MARKETED   BY 
SOUTHWEST    TECHNICAL    PRODUCTS    CORP. 


122 


ASCII 

IC1 

Binary  Code 

Keys 

Function 

74154  pin 

0000000 

Null 

X 

1 

0000001 

Ctrl  A 

X 

2 

0000010 

Ctrl  B 

X                                    i 

3 

000001 1 

Ctrl  C 

X 

4 

0000100 

Ctrl  D 

Down  Cursor 

5 

0000101 

Ctrl  E 

X 

6 

0000110 

Ctrl  F 

Erase  to  end  of  Frame 

7 

0000111 

Ctrl  G 

Bell 

8 

0001000 

Ctrl  H 

Home 

9 

0001001 

Ctrl  I 

X 

10 

0001010 

Ctrl  J 

Line  Feed 

11 

0001011 

Ctrl  K 

Right  Cursor 

13 

0001100 

Ctrl  L 

Erase  to  end  of  Line 

14 

0001101 

Ctrl  M 

Carriage  Return 

15 

0001110 

Ctrl  N 

Up  Cursor 

16 

0001111 

Ctrl  0 

Left  Cursor 

17 

How  To  Remember 


D  and  Down  are  easily  mnemonically  related. 

F  and  Erase  EOF  are  easily  mnemonically  related. 

G  is  the  standard  bell  function  in  ASCII. 

H  and  Home  are  easily  mnemonically  related. 


K  was  chosen  for  Right  not  so  much  because  it  was  desirable  so  much  as  the  fact 
that  it  was  the  least  undesirable.   A,  B    and  C  are  commonly  used  program  con- 
trol commands.   J  and  M  are  used  for  carriage  return  and  line  feed.   This  leaves 
us  with  only  E,  I  or  K.    I  chose  K  and  use  the  mnemonic  K  for  Kontinue. 
L  and  Erase  EOL  are  easily  mnemonically  related. 

While  N  is  not  mnemonically  related  to  Up,  it  was  chosen  since  many  keyboards 
have  an  upward  pointing  arrow  above  the  N. 

O  is  not  mnemonically  related  to  Left  but  was  chosen  because  many  keyboards 
have  a  left  pointing  arrow  above  the  O. 


Table  7 ,'  This  table  summarizes  the  inputs  to  and  the  outputs  from  ICJ.  Along  with  the  desired  keycode  is  given  the  binary  input 
to  IC1,  the  output  pin  that  is  enabled,  and  the  function  that  it  is  wired  for  according  to  the  circuit  of  figure  I.  At  the  right  is  an 
explanation  of  the  alphabetic  mnemonic  that  is  used  to  remember  the  correct  key  to  cursor  command  code.  Note  that  with  the 
exception  of  the  bell,  line  feed  and  carriage  return  commands,  these  functions  are  not  standard  ASCII  functions. 


IN270 
14 OTO    CONTROL  KEY 


-M o 


ALPHABETICAL    KEY 


Figure  2:  Simple  circuit  to  add  control  keys  to  a  keyboard.  The  new  key  is 
wired  to  both  the  control  key  and  the  alphabetical  key.  The  diodes  are 
needed  to  isolate  the  keys  from  each  other. 


labelled  from  I  lo  7  by  SWTPC.  Bit  5  is 
routed  lo  Id's  G2  input,  and  the  Gl  input 
of  Id  is  fed  from  the  TVT  1 1  "computer 
cursor"  signal,  which  is  zero  whenever  bits  6 
and  7  are  both  logical  0.  Bits  I  to  4  are 
applied  to  the  A,  B,  C  and  D  inputs  of  Id. 
Whenever  one  of  the  first  16  control  char- 
acters is  detected,  one  of  the  decoder's 
outputs  will  go  to  logical  zero. 

You  will  notice  that  some  of  the  outputs 
are  connected  to  diodes.  This  is  to  protect 
the  output  of  Id  when  it  is  connected  in 
parallel  with  the  output  of  a  gate  on  the 
main  TVT  II  board.  You  could  use  an  open 
collector  version  of  this  decoder  integrated 
circuit,  but  I  chose  to  use  a  74154  because 
they  are  readily  available  at  low  cost.  I  have 
IN914  diodes  on  my  unit,  and  have  not  had 
any  problems.  A  germanium  type,  such  as  a 
1N270  might  be  a  better  choice,  but  I 
simply  used  whatever  I  had  on  hand. 

Ql  is  included  in  the  circuit  so  that  this 
circuit  will  be  compatible  with  SWTPC's 
screen  read  and  UART  boards.  It  provides 
logic  to  advance  the  cursor  when  told  to  do 
so  by  the  other  boards.  IC2  is  a  one  shot  set 
up  to  handle  the  bell  function.  A  control  G 
will  cause  a  low  going  pulse  at  its  Al  input. 
It  will  then  stretch  the  pulse  for  a  second  or 
so   to   drive   the   Sonalert,   or  whatever  you 


wish  to  use  as  a  bell  function.  There  are 
several  other  outputs  from  Id  that  can  be 
used  to  initiate  other  bells  and  whistles  in 
a  similar  manner.  The  J  numbers  in  figure  I 
refer  to  the  connector  plugs  on  the  main 
TVT  II  board. 

Table  I  is  a  listing  of  the  16  outputs 
and  their  function  assignments.  An  "X"  in 
the  table  indicates  a  free  function  waiting  to 
be  implemented.  A  mnemonic  explanation 
of  the  functions  at  the  right  of  table  I  helps 
when  using  the  keyboard.  If  for  any  reason 
you  wish  to  change  which  control  keys 
perform  which  functions,  just  wire  to  a 
different  output  pin  on  Id. 

If  you  are  using  a  diode  encoded  key- 
board, you  can  add  cursor  control  and  erase 
keys  quite  easily,  if  you  already  have  a 
control  key.  All  you  do  is  connect  each 
cursor  or  erase  key  as  shown  in  figure  2.  The 
diodes  serve  to  isolate  the  keys.  Whenever 
the  key  is  depressed  it  will  simultaneously 
activate  both  the  control  and  alphabetic 
keys.  You  can  add  as  many  of  these  type 
keys  as  you  need.  While  you  are  al  it,  you 
may  wish  to  add  a  calculator  type  array  of 
switches  for  numerical  entry.  You  simply 
wire  them  in  parallel  with  existing  numerical 
keys;  no  diodes  needed.  This  will  consider- 
ably speed  up  the  entry  of  numerical  data." 


123 


(Jlsssifietf  Ads 


WILL  TRADE:  AKC  Samoyed  puppy  or  stud 
service  for  computer  (or  related)  hardware,  BASIC 
software,  or  texts  of  interest.  Contact  G  Frank 
Humiston,  506  Wayne  Av,  El  Cajon  CA  92021 . 

FOR  SALE:  Complete  Wang  computer  system 
CPU  (Model  2200A)  contains  12  K  RAM  expand 
able  to  32  K.  BASIC  is  resident  in  20  K  ROM 
CRT/tape  drive  (Model  2216/2217)  in  one  console 
12  inch  diagonal  64  character  by  16  lines  screen 
Drive  is  fully  under  program  control.  Alpha 
numeric  keyboard  (Model  2222)  with  separate 
numeric  key  pad  and  32  special  function  keys. 
Commercial  quality  equipment  excellent  for  small 
business  application.  All  for  $4,500  or  trade  (new 
at  $9,300).  Write  or  call  for  data  sheet.  Al  Leung, 
POB  5272,  Redwood  City  CA  94063,  (415) 
364-6746. 

HELP:  I  found  some  partially  assembled  electronic 
equipment  and  other  items  for  Four-Phase  Systems 
tnc  sync  modem  monitor  two  summers  ago  in  the 
Flaming  Gorge  National  Recreation  Area  UT.  I 
have  been  unsuccessful  in  tracing  the  owner.  To 
claim,  let  the  owner  identify  the  equipment  in  full. 
Jay  Radavich,  120%  S  Polk,  Moscow  ID  83843. 

FOR  SALE:  MOS  Technology  Inc  KIM-1  with  1  K 
homebrew  2IL02  RAM.  Power  supply:  three  each 
+5  V  at  1.5  A,  1  each  -5  V  at  0.5  A,  1  each  at 
+12  V  0.5  A,  1  each  at  -12  V  0.5  A.  Serial  adaptor 
board,  SAD-1  (checked  out  on  a  CT  1024,  works 
OK),  wood  case,  extra  22  pin  connectors  with  two 
extra  on  case,  cross  assembler  manual,  TIM  man- 
ual. Please  monitor  with  tape  and  books.  Tiny 
BASIC  with  tape  and  hexadecimal  list,  10  each 
Memorex,  30  minutes  each  side  with  programs. 
$330  takes  all.  Robert  G  Lloyd,  7554  Southgate 
Rd,  Fayetteville  NC  28304,  (919)  867-5822. 

WANTED:  To  buy,  for  personal  use  only.  Tested 
programs  for  business  applications,  business  games 
and  simulations.  Micro  BASIC  or  IBM  360  BASIC/ 
FORTRAN  IV.  Doug  Gilson,  #72  University  Ter, 
Columbia  SC  29201. 

WANTED:  Young  student  with  small  budget  wants 
back  issues  of  BYTE,  Radio  Electronics,  Popular 
Electronics,  and  computer  and  electronics  books 
(at  list  price  or  less  plus  postage).  Will  buy  or  trade 
with  back  issues  of  Popular  Science  or  Popular 
Mechanics.  (I  have  them  back  to  1932.)  Contact 
me  at  the  next  meeting  of  SDCS  or  write  Victor 
O'Rear,  POB  1388,  La  Mesa  CA  92041. 

FOR  SALE:  IMSAI  one  UCRI  cassette  board  $39, 
one  8080  processor  board  $160,  one  4  port  parallel 
IO  board  $140,  one  2  port  serial  IO  board  $140, 
two  parallel  board  cables  $20  each,  two  serial 
board  cables  $15  each,  one  SWTPC  PR-40  printer 
$240,  one  Oliver  Audio  paper  tape  reader  $60,  one 
DC-50  MHz  RF  generator  $200,  one  Motorola 
PT-300  Handi  Talkie  $250,  one  Software  by  Scelbi 
SCELBAL  higher  level  language  $35,  one  8080 
assembler  $20.  All  boards  fully  assembled  and 
guaranteed  to  work.  Will  ship  COD  UPS;  you  pay 
the  freight.  Vance  James,  POB  2292,  Hickory  NC 
28601. 


Readers  who  have  equipment,  software  or  other 
items  to  buy,  sell  or  swap  should  send  in  a  clearly 
typed  notice  to  that  effect.  To  be  considered  for 
publication,  an  advertisement  should  be  clearly 
noncommercial,  typed  double  spaced  on  plain 
white  paper,  and  include  complete  name  and 
address  information.  These  notices  are  free  of 
charge  and  will  be  printed  one  time  only  on  a  space 
available  basis.  Insertions  should  be  limited  to  100 
words  or  less.  Notices  can  be  accepted  from 
individuals  or  bona  fide  computer  users  clubs  only. 
We  can  engage  in  no  correspondence  on  these  and 
your  confirmation  of  placement  is  appearance  in 
an  issue  of  BYTE. 

Please  note  that  it  may  take  three  or  four 
months  for  an  ad  to  appear  in  the  magazine.  ■ 


NEEDED:  BYTE  issues  volume  1,  numbers  1  to 
10.  Must  be  complete,  and  preferably  in  at  least 
good  condition.  High  quality  Xerox  reproductions 
may  be  considered  (if  BYTE  doesn't  mind).  For 
Xerox,  please  forward  a  sample  reproduced  page. 
T  Mishler,  5914  Glenn  Av,  Flint  Ml  48505, 

FOR  SALE:  CRT  terminal,  3  month  old  Micro- 
Term  ACT-1  with  9  inch  Sanyo  monitor.  16  lines 
of  64  characters,  autoscroll,  110,  300,  600,  1200, 
2400,  4800,  9600  bps,  RS232C  or  current  loop. 
Modified  for  direct  display  of  typed  data.  All 
documentation.  $495  includes  shipping.  Bob 
Ripley,  Rt  3,  Fayetteville  AR  72701.  (501) 
267-3172  evenings. 

FOR  SALE:  To  highest  bidder,  all  issues  of  BYTE 
magazine  published  to  date,  in  mint  condition.  Will 
not  break  up  collection.  Only  highest  bidder  will 
be  notified.  Send  offers  to  David  Hicks,  1711  E 
Willow  Ave,  Wheaton  I  L  60187. 

WANTED:  Technical  info  on  SR-52.  Labels,  for- 
mat and  signal  levels  of  interconnection  pins  to 
printer,  card  reader  data  format  and  recording 
technique,  IC  pinouts,  schematic,  programming, 
architecture,  signal  levets,  voltages,  anything  that 
will. help  me  interface  it  with  a  homebrewing  Z-80 
and/or  reload  program  from  an  outside  memory. 
Will  pay  duplication  costs  or  will  buy  a  service 
manual  if  available.  Will  work  or  exchange  informa- 
tion with  anyone  who  has  attempted  to  interface 
this  unit.  Help.  Jack  Lambert,  5  Graham  Rd, 
Lexington  MA  021  73,  (617)  862-8490. 

BYTE:  Issues  1  thru  13  in  good  condition, 
complete  set  for  $39.  Tom  French,  404  Leeward 
Lndg,  Roswell  GA  30076,  (404)  993-1042. 

WANTED:  Back  issues  of  BYTE.  Need  September, 
October,  November,  December  1975  and  April 
1976.  Also  need  December  1975  and  January, 
February,  March  1976  of  SCCS  Interface.  Send 
your  asking  price  to  Dick  De  Nicola,  516  Devanah 
St,  Covina  CA  91722,  (213)  685-6307. 

FOR  SALE:  Viatron  2111  Data  Management 
Center  with  Printing  Robot  and  all  manuals.  Unit  is 
in  operating  condition,  $700.  Dan  Wolf,  c/o 
Interglobal  Photos,  New  York  NY  10003. 

FOR  SALE:  Southwest  Technical  Products  TV 
typewriter.  Includes  keyboard,  1  K  of  RAM,  serial 
interface  board,  power  supply,  cursor  controls  and 
two  page  memory  options  wired.  Mounted  on  a 
metal  chassis.  Complete  wired  and  in  working 
condition,  $200.  Webber  Hall,  16967  Blanche  PI, 
Granada    Hills    CA   91344,    (213)    363-2004. 

FOR  SALE:  7  track  AMPEX  FR400  Digital  Tape 
Handler;  includes  all  motors,  motor  control  cir- 
cuitry, hubs,  capstan,  take  up  reel  for  2400  foot 
1/2  inch  tape,  complete  documentation  and  parts 
list.  No  read  write  electronics  or  manual  control 
panel.  Best  offer  plus  shipping  for  160  lbs,  about 
19  by  17  by  17  inches.  Paul  Krieger,  2111  W  lliff, 
Englewood  CO  80110,  (303)  922-2385. 

FOR  SALE:  Paper  tape  equipment.  Two  high 
speed  Digitionics  8  level  paper  tape  readers  300 
cps,  stop  on  character,  like  new,  $60  each.  One  8 
level  paper  tape  punch,  including  all  drive  electron- 
ics and  interface  to  8  bit  micro,  $75.  Jim  McCord, 
120  E  De  La  Guerra,  Santa  Barbara  CA  93101, 
(805)  963-8941. 

FOR  SALE  OR  TRADE  for  working  or  non- 
working  mini  computer.  SCR  826MA,  Horizon  2, 
Lampkin  105B,  etc.  Please  write  Dale  Hutchinson, 
10818  Brentway  Di ,  Houston  TX  77070. 

FOR  SALE:  One  6502  KIM  system  with  documen- 
tation, $175.  One  6502  MPU  and  6530-004  TIM 
with  TIM  manual,  $45.  Three  6530-005  RAM,  10 
port  combinations,  $10  each.  Eight  2102s,  $12  the 
lot,  and  two  61  1 1  A -4s,  $6  for  both.  Miscellaneous 
TTLs:  74100,  74150,  8202,  8416,  S.50  each.  I'm 
house  cleaning  and  hope  someone  can  use  these. 
J  Grina,  1233  Ray  PI,  St  Paul  MN  55108, 

FOR  SALE:  SCM  Typetronic  98/330  (CDC -9816) 
2R/2P  with  Fron  feed  carriage.  Includes  control 
unit  IO  printer,  processor,  two  readers  and  two 
V-punch  united.  Original  cost  $23,000.  Best  offer. 
Mr  Hepburn,  Rockland  MA,  (617)  871-1790. 


FOR  SALE:  MITS  Altair  8800a.  Assembled,  facto- 
ry tested.  Includes:  CPU  card  with  8080a,  factory 
assembled  SIO-C  (TTY)  interface  card,  ACR  (cas- 
sette) interface  card,  factory  adjusted  to  the  new 
MITS  frequencies,  two  4  K  dynamic  memory 
cards,  12  total  factory  installed  edge  connectors 
and  card  guides,  switchable  fan  and  MITS  modified 
power  supply.  Originally  cost  over  $1400.  Will  sell 
for  $850  (or  make  me  an  offer).  Call  Craig  Pearce 
at  (312)  484-5846  (7  to  10  PM,  CST). 

FOR  SALE:  Complete  factory  assembled  Sphere 
system:  6800  MPU,  keyboard,  CRT,  PWR  supply, 
resident  monitor  in  PROM,  4  K  user  memory,  2 
cassette  IO.  Asking  $1000,  or  willing  to  trade  for  a 
working  IBM  1620.  Bob  Wada,  12812  Court  St, 
Garden  Grove  CA  92641,  (714)  893-8940. 

WANTED:  System  Viatron  21  and  accessories. 
Fred  De  Bros,  15  Garden  St,  Boston  MA  02114. 

WANTED:  I  would  like  to  purchase  the  first  12 
issues  of  BYTE  (ie:  volume  1,  numbers  1  to  12).  If 
you  have  any  of  these  issues  for  sale  please  write 
W  R  Parks,  Assistant  Professor  of  Computer  Science, 
Walters  State  Community  College,  Appalachian 
Hwy,  Morristown  TN  37814. 

WANTED:  Selectric  type  writer  /terminal  com- 
patible with  Altair  type  system.  Need  either 
complete  unit  or  conversion  kit  including  interface 
for  Selectric  I  or  II.  Charles  Ames,  46  Coburn 
Woods,  Nashua  NH  03060,  (603)  889-5000  after 
7  PM. 

FOR  SALE:  One  MITS  4  K  static  memory  board 
and  one  MITS  4  K  dynamic  memory  board,  S165 
each.  One  Processor  Tech  8  K  memory  board 
$315.  All  boards  fully  socketed,  fully  assembled, 
and  work  perfectly.  J  R  Fish,  2121  Columbia  Pike 
#208,  Arlington  VA  22204,  (703)  521-6763. 

FOR  SALE:  TTY  paper  tape,  1  inch  wide,  8  inch 
diameter  rolls,  buff,  oiled,  perfect  for  ASR-33. 
$5  plus  UPS  shipping  per  7  roll  carton  (12  lbs)  or 
$15  per  28  roll  case  plus  UPS.  Two  or  more  cases, 
$12.50  each  plus  UPS.  Dan  S  Parker,  1007  3rd  St 
#3,  Davis  CA  95616,  (916)  758-2341  evenings. 

FOR  SALE:  Burroughs  Card  Reader  (Series  A590, 
Style  #A592),  its  logic  unit,  and  a  complete  set  of 
schematics.  Any  offer  will  be  welcome.  Its  physical 
dimensions  are  10  by  9  by  24  inches.  Chris  Nolet, 
131  Bridge  St,  Dedham  MA  02026,  (617) 
329-3189. 

WANTED:  Manual,  schematic  and  service  data  for 
Burroughs  calculator  Model  C-5155,  Series  C-5000. 
Luis      Pena,      POB    954,      Montevideo,     Uruguay, 

5  AMERICA. 

FOR  SALE:  1702A  by  Intel.  Bought  large  lot  to 
cut  expense.  Willing  to  share  savings.  Factory  fresh. 
$5.50  plus  $1  for  shipping  and  packaging.  B  D 
Lichtenwalner,  29  Michael  Rd,  Stamford  CT 
06903. 

FOR  SALE:  First  24  issues  of  BYTE  complete. 
Best  offer.  Roy  Lynch,  POB  8,  Sabina  OH  45169, 
(513)  584-2424. 

FOR  SALE:  PDP-11/03,  cheap;  16  K  +  24  K  board 
for  same;  portable  Tl  terminal;  twin  floppies, 
RT-1 1 .  Make  offer  for  all  or  any  of  the  above.  Also 
LA36  DECwriter  II,  $1200.  Omnitech  701 B 
modem,  $190.  Would  like  to  discuss  all  DEC  or 
DEC  compatible  hardware  and  software.  Need 
PDP-11/04  or  larger.  Walter  D'UII,  2239  Grand 
Concourse,  New  York  NY  10453,  (212)  933-0300 
or  (201)  744-0685. 

WANTED:  Information  on  how  to  interface  a 
Flexowriter  Programatic  to  a  processor.  I  will  pay 
for  cost  of  duplicating  and  postage.  Have  Technical 
Manual  and  schematics  for  Models  FL,  SFD  and 
SPD    for    anyone    who    needs   it.    Frank   Goeringer, 

6  Fox  Meadow  Ln,  Cahokia  IL  62206,  (618) 
337-7031. 

SOFTWARE  WANTED:  Bio-engineering  or  bio- 
medical simulation  programs  for  IMSAI  8080  in 
BASIC,  PDP-11  in  BASIC  or  FORTRAN,  WANG 
2200  in  BASIC,  IBM  360  or  IBM  370  in  almost 
any  language.  Donald  Becnel,  POB  14473,  Baton 
Rouge  LA  70808. 


124 


The  Intelligent  Video  Interface 


The  MERLIN  Kit  with  manual  is  $269. 

MERLIN  assembled  &  tested  is  $349. 

Order  yours  today. 

MC  and  BAC  accepted 


If  you  are  still  not 

convinced  that  MERLIN  is  the  best  buy 

in  Video  Interfaces/Monitors 

see  one  at  your  local  computer 

store  or  write  for  more  info. 


MiniTerm  Associates,  inc. 


Box  268,  Bedford,  MA  01730  (617)  648-1200 


Circle  38  on  inquiry  card. 


Photo  I:  The  homebrew 
remote  display  board, 
plugged  into  KIM  via  a  rib- 
bon cable.  With  such  a 
remote  display  and  a  re- 
mote keyboard  connected 
through  KIM's  edge  con- 
nector, it  is  possible  to 
create  an  enclosed  hous- 
ing which  protects  the 
processor. 


Giving  KIM  Some  Fancy  Jewels 


Robert  Grater 

1595-21  Laurelwood  Rd 

Santa  Clara  CA  95050 


When  my  KIM-1  arrived  I  was  excited, 
but  a  little  dubious;  after  all,  I  had  read  all 
those  microprocessor  books  and  still  didn't 
know  beans  about  programming.  Well,  MOS 
Technology's  excellent  manuals  took  care  of 
that  and  I'm  on  my  way  to  knowing  what 
I'm  doing.  When  I  say  excellent,  I  mean  if  I 
learned  it,  anyone  can! 

But  KIM  has  a  fundamental  problem!  I 
like  KIM,  but  I  just  can't  see  myself  sitting 
there  with  a  naked  board  gathering  dust  and 
me  dropping  ashes  all  over  it  while  I  sweat 
out  a  program.  Also  with  MOS  Technology's 
welcomed  announcement  of  the  KIM-2  and 
KIM-3  programmable  memory  boards  and 
the  coming  KIM-4  mother  board,  it's  really 


time  to  start  thinking  about  putting  KIM  in 
a  nice  enclosure.  But  in  order  to  bury  KIM 
in  an  enclosure,  I  had  to  somehow  bring  the 
displays  and  keyboard  lines  out. 

MOS  Technology  was  nice  enough  to 
bring  the  keyboard  out  to  the  application 
connector,  so  one  problem  was  solved  before 
I  started.  But whataboutthe display?  I  didn't 
want  to  just  parallel  the  existing  readouts  on 
the  board  because  that  would  mean  that 
much  extra  current,  and  this  might  not  make 
the  drivers  too  happy.  I  came  up  with  the 
following  solution  which  is  fairly  simple,  yet 
a  bit  delicate  to  start  with.  Delicacy  and 
discretion  with  KIM  are  requirements  of  the 
task    of   unsoldering    the    original    readouts, 


Figure  I:  This  diagram 
shows  electrical  connec- 
tions of  the  16  pin  remote 
adapter  socket  installed  as 
UI8,  with  patches  to  the 
pin  3  anode  connections 
of  U19  thru  U23  of  the 
KIM -I  design.  The  display 
positions  of  UJ9  thru  U23 
can  have  14  pin  sockets 
installed  if  it  is  desired  to 
occasionally  revert  to  on 
board  displays. 


uia  ADAPTOR 
SOCKET 


SEG  A 
SEG  F 
UI8AN 
U20AN 
U2IAN 
U22AN 
SEG  E 
U23AN 


UI8AN 
SEG  B 
UI9AN 
SEG  G 
SEG  C 
UI8AN 
SEG  D 
N/C 


UI9 


U20 


U2I 


U22 


U23 


126 


16    PIN 

DIP    SOCKET 

ON   BACK   OF 

REMOTE 

DISPLAY 

BOARD 


1118 


3    9  14 
•    II— 


UI9 


3    9   14 


U20 


U2I 


U22 


3    9  14 


U23 


Figure  2:  A  remote  display 
board.  After  removing  the 
KIM-1  displays,  a  remote 
display  board isconstructed 
for  mounting  in  a  more 
convenient  packaging  ar- 
rangement. The  wiring  of 
the  cable  which  plugs  into 
the  16  pin  socket  installed 
at  the  U18  position  of  the 
KIM-I  board  is  listed  in 
the  diagram. 


turning  these  displays  into  remarkable  jewels. 

The  MAN  72  7  segment  readouts  (U18 
thru  U23  of  the  MOS  Technology  docu- 
mentation) are  unsoldered  with  an  iron  of 
less  than  35  Wand  a  "solder  sucker"  or  similar 
vacuum  solder  removal  tool.  This  is  the  only 
way  I've  ever  found  to  successfully  unglue 
items  on  double  sided  boards.  This  will  allow 
you  to  replace  the  displays  with  one  16  pin 
socket  as  shown  in  figure  I.  The  16  pin 
socket  will  go  in  the  14  pin  U18  slot  (there 
is  room  for  the  extra  pin  below).  Use  of  the 
unused  pins  of  the  old  14  pin  display  pattern, 
plus  one  extra  socket  pin  of  the  16  pin 
socket,  allows  all  the  necessary  control 
signals  to  be  routed  to  the  external  display 
position. 

In  order  to  mount  the  16  pin  socket,  take 
a  small  piece  of  Vectorboard  with  0.1  inch 
spacing  and  lay  it  over  the  spot  for  U18  and 
line  it  up  with  the  existing  holes;  this  will  be 
your  marking  guide.  Now  using  a  scribe  or 
small  drill,  mark  the  spots  for  pins  4,  5,  8, 
and  14  (which  were  originally  unused  at 
U18).  Do  not  mark  the  spot  for  pin  9  since 
it  would  go  through  the  circuit  on  the  other 
side.  Hold  the  Vectorboard  firmly  when 
marking  and  check  for  alignment  with  a 
16  pin  socket  after  marking  it.  Now  using  a 
#58  drill  at  the  highest  speed  you  can  get, 
carefully  drill  the  extra  four  holes.  Take 
your  1 6  pin  dip  socket  and  clip  off  pin  9  on 
the  back  side;  now  it  may  be  soldered  in 
place  with  pin  1  to  the  upper  left.  (If  you 
solder  five  14  pin  sockets  in  the  other  dis- 
play patterns,  you  can  plug  the  six  displays 
you  removed  into  the  sockets  and  check  to 
make  sure  KIM  is  still  talking  to  you). 

Now  we  have  four  extra  pins  at  U18 
and  five  anode  leads  to  bring  out  on  111 8's 
modified  socket  (which  is  called  the  adaptor 
socket)  in  figure  1.  Actually  we  have  five 
extra  pins  since  pin  6  on  all  the  displays  is 


Pin        Connection 


SUMMARY  OF  INTERFACE  CABLE 
Pin        Connection 


1  Segment  A  Cathode  9 

2  Segment  F  Cathode  10 

3  U18  Common  Anode  11 

4  U20  Common  Anode  12 

5  U21  Common  Anode  13 

6  U22  Common  Anode  14 

7  Segment  E  Cathode  15 

8  U23  Common  Anode  16 


No  Connection   (Do  not  drill  on  KIM) 

Segment  D  Cathode 

U18  Common  Anode 

Segment  C  Cathode 

Segment  G  Cathode 

U19  Common  Anode 

Segment  B  Cathode 

U18  Common  Anode 


the  decimal  point  cathode  and  is  not  used. 
All  we  have  to  do  now  is  bring  the  five  other 
common  anode  leads  from  U19  thru  U23 
to  our  modified  U18  socket  as  illustrated  in 
figure  1,  This  may  be  done  with  very  small 
(#26)  wire.  I  picked  up  pin  3  of  all  the  other 
display  sockets  which  seemed  to  give  the 
easiest  routing,  straight  down  the  middle. 
The  wiring  diagram  of  figure  1  shows  the 
connections.  Now  you  have  the  original  on 
board  display  with  the  option  of  plugging 
into  the  adaptor  socket  with  an  16  pin  DIP 
plug  for  a  front  panel  display  when  you  put 
KIM  in  a  box. 

The  front  panel  display  may  be  wired  as 
shown  in  figure  2.  I  used  a  modified  clock 
display  board  and  would  have  been  just  as 
well  off  wiring  it  by  hand  on  Vectorboard. 
Also  I  used  a  16  pin  DIP  male  to  male  plug 
with  another  16  pin  socket  mounted  on  the 
back  of  the  display  board,  so  the  whole 
works  can  be  unplugged  if  I  want  to  go  back 
to  the  bare  KIM  for  testing  or  whatever.  )ust 
for  a  little  added  elegance  and  pizzazz,  I 
replaced  the  two  data  display  readouts  with 
MAN  7G  green  LED  displays  for  some  classy 
emerald  jewel  effects. 

This  modification  of  KIM's  display  jewels 
is  just  the  first  step  in  getting  KIM  into  a 
more  workable  medium  for  expansion  and 
dressing  her  up  a  bit.  I've  also  been  working 
on  the  complete  housing,  but  that's  another 
story." 


127 


PAPERBYTES™ 
Forum 


Yet  Another  Format? 

Ian  Robinson,  308  W  5th  St,  Neillsville 
Wl  54456, sent  in  an  extended  letter  on  an 
alternative  to  the  bar  code  format  we  pro- 
posed in  November  and  December,  and  have 
begun  using.  He  proposes  a  format  which 
looks  like  this: 


-  data  bars  (Is  only) 

—  clock  bars  (each  bit) 

Binary  data 


010101000010100 


However,  there  is  one  disadvantage  to 
this  format:  It  requires  two  read  sensors 
since  the  data  clock  bars  and  the  data  bars 
must  both  be  read  simultaneously.  He  argues 
that  this  method  can  be  hand  drawn  with 
quite  a  variation  in  density,  which  may  be 
true,  but  the  whole  idea  of  the  bar  codes  was 
to  automate  the  printing  process  for  mass 
produced  software  distributed  in  maga- 
zines. ■ 

BAR  CODES  AND  OTHER  TOPICS 

I  enjoyed  the  April  1977  issue  of 
BYTE,  which  I  thought  was  somewhat 
improved  in  areas  of  my  interest.  In 
particular,  I  enjoyed  your  article,  "A 
Software  Controlled  1200  bps  Audio 
Tape  Interface."  For  a  while,  I  thought 
that  our  interests  might  be  diverging, 
but  now  your  articles  are  tending  more 
toward  the  hardware  direction,  with 
one  particular  area  of  common  interest 
that  intrigues  me  greatly. 

The  idea  of  published  software  in 
bar  code  form  could  well  be  the  greatest 
communications  method  yet,  as  far 
as  hobby  level  exchanges  go.  Here 
are  some  additional  ideas  for  your 
consideration. 

An  almost  perfect  version  of  the 
optical  leader  described  by  Frederick 
Merkowitz  in  his  article  on  page  77  of 
December  1977  BYTE  is  available  from 


Wilcox  Enterprises,  whose  ad  also 
appears  on  page  85  of  this  issue.  This 
item  sells  for  a  mere  $15,  and  contains 
a  B  &  L  Microscope  equipped  with  an 
EPI  illuminator  (through  the  lens)  and 
a  10  x  objective  lens.  The  microscope 
assembly  is  equipped  with  a  photocell 
and  slit  assembly,  and  is  mounted  on 
a  precision  set  of  slides.  The  assembly 
is  scanned  or  driven  by  a  motor  (every 
unit  I  have  ordered  has  been  damaged, 
but  the  motor  can  be  replaced  easily, 
by  any  semiskilled  hacker)  and  gear 
assembly. 

An  infrared  emitter  and  sensor 
combination,  mounted  in  a  TO  -  1 8 
package,  is  available  from  Ultra  Sensors 
Inc  at  2400  West  102nd  St,  Suite  313, 
Minneapolis  MN  55431.  The  price  is 
$4.50  in  unit  quantities  (ask  for  the 
Cyclops  Evaluation  Kit).  This  device  is 
easily  made  into  a  light  pen  style  reader, 
or  any  other  configuration  one  might 
desire.  There  seem  to  be  no  significant 
problems  with  ambient  light,  or  angle 
of  approach  with  this  device,  if  the 
self-contained  lens  is  held  in  contact 
with  the  paper  while  reading.  This  device 
works  best  if  it  is  powered  by  approxi- 
mately 10  kHz  pulses  of  5  to  I  0  V  mag- 
nitude, through  a  27  Ohm  current 
limiting  resistor  (or  it  can  be  driven 
by  a  single  UJT  transistor  oscillator 
operating  at  10  kHz).  Connect  the 
photocell  to  a  LM  308  op  amp  through 
a  100  pF  capacitor  followed  by  a  3.3  k 
Ohm  resistor  to  ground  (ie:  a  differen- 
tiator). If  you  rectify  the  output  of 
the  op  amp,  you  have  the  scanned 
bar  code  signal! 

A  bar  code  printer  (coded  for  the 
standard  bar  codes,  ala  super  market) 
is  available  from: 

Medical  Record  Systems 
Division  of  Ames  Color-File 
Corporation 
12  Park  St 
Somerville  MA  02143 

They  ask  a  very  high  $6,500  (in  hobby 
terms)  price  for  this  critter,  and  the 
electronics  for  bar  code  formulation  and 
interface  are  not  of  particular  interest 
in   our   case.  Possibly  the  printer  mech- 


anism alone  can  be  purchased.  With 
such  a  machine  connected  to  a  key- 
board and  a  universal  (ie:  programmable) 
cassette  tape  interface,  BYTE  maga- 
zine could  reproduce  almost  anyone's 
software  recordings  into  one  of  the 
bar  code  formats  that  you  have  been 
discussing.  This  would  make  the  dream 
of  software  exchange  a  reality.  (If 
BYTE  would  like  a  formal  quotation 
for  construction  of  such  a  system, 
just  ask.  This  is  my  business.  A  first 
guess  at  the  cost,  with  bar  code  printer, 
would  be  approximately  $13,000.) 

I  don't  enjoy  writing  software, 
and  I  find  the  manual  entry  of  software 
listings  a  very  boring  task.  Published  bar 
codes  could  change  this. 

I  have  recently  made  several  video 
monitors  by  converting  a  Magnavox 
12  inch,  transformerless  set  for  a  total 
cost  of  $87  each.  I  go  to  a  Magnavox 
dealer,  and  purchase  an  MG  5056WAF2 
less  the  video,  audio  and  tuner  mod- 
ules. These  are  plug-in  and  can  be 
removed  in  minutes  right  in  the  show 
room  (take  a  1/4  inch  nut  driver  with 
you).  The  dealer  can  use  these  modules 
to  service  quite  a  few  Magnavox  sets, 
and  the  total  rebate  has  been  $53.55 
to  me.  By  sawing  the  fingers  off  an  old 
PC  card,  you  can  fabricate  a  connector 
to  fit  into  the  video  modules  socket, 
and  make  connection  to  pin  4  V  (video) 
and  pin  8  (ground).  Delta  Electronic's 
L9971  isolation  transformer  at  $6  then 
mounts  in  the  same  screw  holes  that 
mounted  the  tuners!  If  you  think  there 
would  be  sufficient  interest  in  this 
project,  I  could  put  together  a  project 
article  on  same. 

The  front  cover  picture  of  April  1  977 
BYTE  is  fantastic.  How  about  poster 
size  reproductions  of  this?  I  need  several 
(to  justify  the  present  conditions  on 
several  of  my  own  benches)! 

Sumner  S  Loomis 

Route  1,  Box  131  A 

Prairie  Point  MS  39353 

Thanks  for  your  excellent  comments 
and  suggestions,  but  I  thought  I  used 
software  to  generate  and  decode  the 
information  at  the  interface.  .  ,CH  a 


HIGH-SPEED  CASSETTE  INTERFACES  (The  Stringy  Disk) 


CRI-B 

Up 

lUivl 

"ill 


DAJEIM  Electronics 

7214  Springleaf  Ct. 

Citrus  Heights,  Ca.  95610 

(916)  723-1050 


600  to  12,000  baud  status 
controls,  1K  monitor  with 
cassette  routines  provided 
on  tape. 


SUMMER   SALE! 
Take  10%  off.  Good  thru  Aug.  31, 
1977.   Dealer  inquiries  invited. 

This  one  does  it  all! 

Announcing:  Universal  l/o,  moni- 
tor in  EPROM,  RAM,  RS-232,  cur- 
rent loop,  3  parallel  ports,  cas- 
sette l/o,  relay  control.  Kit:  $235. 


UCRI 


0'; 


;. 


Relay  control  of  two  re- 
corders, latched  input  port 
for  keyboard,  tape  reader, 
etc.  File-search  capabilities. 


Biphase,  Kansas-City,  Altair,  IMSAI,  Poly,  Tarbell  compatible 

Kit  $120,  Assembled  $165  Kit  $135,  Assembled  $175 

Manual  $3.50  Manual  $4.50 


Circle  39  on  inquiry  card. 


128 


Circle  97  on  inquiry  card. 


What's 


ASCII  Keyboard  Kit  from  Radio  Shack 

£  1.:  *.  'Y"i1,Y',T"VT[  jHa'"T  2" 


MllllllllllPffPPI 
«  *  S8911iliP!»P«! 


Radio  Shack  has  announced  the 
new  Archer  ASCII  Keyboard  Encoder 
kit  for  $57.80.  The  price  includes  all 
electronics  and  parts  needed  to  assemble 
the  keyboard  as  shown.  An  external 
5  VDC  500  mA  power  supply  (not 
supplied)  is  necessary  to  power  the  unit; 
this  may  be  purchased  locally.  The 
printed  circuit  board  alone,  including 
assembly  and  parts  manual,  is  avail- 
able for  $14.95.  See  your  local  Radio 
Shack  dealer  for  details  on  their  latest 
catalog  sheets." 

Circle  634  on  inquiry  card. 


A  New  Multiplexed  Analog  IO  Card 
for  the  Z-80 


Signal  Laboratories  Inc,  202  N  State 
College  Blvd,  Orange  CA  92668,  is 
making  available  a  new  analog  IO  card. 
With  this  board,  intended  for  use  with 
the  Zilog  Z-80  development  systems, 
the  engineer  or  scientist  can  monitor 
up   to    16   analog  channels  in  real  time. 


NEW  .  .  .  1977 


MICROCOMPUTER 
CATALOG! 


Hundreds  of  microcom- 
puter products  and  ac- 
cessories from  many 
manufacturers. 

Our  new  MICRO  77  Catalog  provides  you  with  a  single, 
easy  to  use  source  for  comparing  and  selecting  microcom- 
puters —  from  simple  low  cost  trainers,  to  advanced  systems 
designed  for  business,  scientific,  and  engineering  applications. 

Whether  you  choose  a  kit  or  fully  assembled  unit,  this  easy 
to  use  catalog  can  help  take  the  mystery  out  of  selecting  the 
computer  system  that  is  best  for  your  application. 

Included  in  this  catalog  is  a  convenient  glossary  of  terms 
for  reference,  and  sections  covering: 

MICROCOMPUTER  SYSTEMS 

PERIPHERALS 

DEVELOPMENT  AND  TEST  EQUIPMENT 

SOFTWARE 

BOOKS  AND  PROGRAMMED  COURSES 

Send  $1.00  (refundable  with  first  order)  for  your  copy 
today  I 

miMCom  systems 

865  3rd  Street  South,  St.  Petersburg,  Fl  33701 


PCC'S 


Reference  Book 


of  Personal 


and  Home  Computing 

Ever  try  to  find  the  addresses  of  some  manufacturers  of,  say, 
tape  cassette  or  floppy  disk  interfaces  for  micros?  Frustrat- 
ing, isn't  it?  Well  PCC  has  done  something  about  it.  This 
book  lists  hundreds  of  companies  and  stores  selling  hardware, 
software,  and  services.  Survey  articles  on  software,  hardware, 
kits,  applications  and  the  future  for  the  experienced  and  the 
not-so-experienced  user  of  micros.  Also  included  in  this  edi- 
tion are  bibliographies  for  further  reference,  book  reviews, 
and  an  index  of  the  articles  from  the  major  hobbyist  maga- 
zines. All  for  the  low  price  of  $4.95,  plus  50  cents  postage. 


Available  through: 


Master  Charge  and 
BankAmericard  Welcome. 


BITS,  Inc. 

70  Main  Street 

Peterborough  NH  03458 

In  unusual  cases,  processing  may  exceed  30  days. 


129 


Circle  51  on  inquiry  card. 


The  channels  are  sequentially  sampled 
and  sent  through  a  12  bit  analog  to  digi- 
tal converter.  Two  multiplexed  digital 
to  analog  outputs  are  also  available 
on  the  board,  as  well  as  four  discrete 
(1  bit)  outputs  and  a  DC  to  DC  con- 
verter, enabling  the  board  to  be  powered 
with  only  +5  VDC.  One  analog  to  digital 
conversion  takes  a  maximum  of  20  MS. 
A  programmable  gain  amplifier  is  also 
included  offering  gains  of  1 ,  2,  4  or  8. 
An  option  is  available  which  allows 
the  board  to  monitor  up  to  32  analog 
input  channels.  Price  for  quantities 
under  ten  ranges  from  $595  to  $910, 
depending  on  options.  Available  from 
stock." 

Circle  645  on  inquiry  card. 


A  Sophisticated  New  Small  System 


On  Line  Shirtware 

Fed  up  with  those  tiresome  Paris 
originals?  Eschew  the  tacky  route  at 
your  next  computer  club  meeting  with 
Martha  Herman's  new  computer  T-shirt 
designs.  Try  REAL  TIME  OPERATOR 
on  a  dark  green  background,  or  maybe 
GARBAGE  IN-GARBAGE  OUT  on 
orange.  Other  titles  include  COMPUTER 
WIDOW  and  RANDOM  ACCESS;  there 
are  ten  in  all. 

Shirts  are  available  from  Martha 
Herman,  114  W  17th  St,  New  York 
NY  10011,  for  $5  plus  $.60  postage  per 
shirt.  State  chest  size." 

Circle  646  on  inquiry  card. 


Microkit  Inc,  2180  Colorado  Av, 
Santa  Monica  CA  90404,  has  announced 
their  new  Microkit  8/16  Universal  Micro- 
computer Development  System  as  shown 
for  $5,275.  The  system  is  available  in 
both  8080  or  6800  versions,  and  the 
price  includes  32  K  bytes  of  program- 
mable memory,  two  cassette  recorders 
and  a  high  speed  graphics  display.  An 
interesting  feature  of  the  software  sup- 
port package,  called  Quickrun,  is  that 
the  monitor,  debugger,  editor  and 
assembler  reside  in  the  32  K  byte  memory 
simultaneously,  along  with  a  source  code 
work  space  and  an  object  code  work 
space.  This  allows  up  to  1000  steps  of 
source  program  and  4  K  bytes  of  object 
code  to  reside  in  memory  simultaneously. 


No  bells  or  whistles. ..just  performance, 
a  warranty  and  a  low  price. 


i  *     mm  awkaa  %$Mn 


fcSB  I  V 


"J!      i     •  "         , 


IHf 


For  $107.00  take  your  choice;  the  4K  RAM  board  or  the 
alpha  video  board.  For  $137.00  the  video  graphic  board 
can't  be  matched.  (8K  RAM  and  much  more  on  the  way.) 

These  are  nor  kits,  but  completely  assembled,  burned-in, 
tested  boards  with  a  1  year  warranty.  No  soldering,  no 
messing,  no  chance  of  mis-connections  .  .  .  just  plug  'em 
in  and  you're  ready  to  go. 

The  4K  RAM  has  the  same  features  and  speed  as  what 
you're  used  to  (500  nsec,  no  wait  states)  but  with  a  couple 
of  extras  you  might  not  expect.  Like  a  mechanical  write 
protect  switch  that  gives  you  positive  memory  protection. 
And  Visaddress®,  an  easily  accessible  switch  on  top  of  the 
board  for  easy  to  read  address  selection. 

The  alpha  video  board  offers  Visaddress  address  selec- 
tion and  displays  128  ASCII  characters:  both  upper  and 
lower  case.  A  standard  16  line  by  32  character  format  with 
character  selectable  video  reverse  and  socketed  ROM  are 
standard  features.  (Character  generator  ROM  available  with 
standard  graphics  characters.  Optional  Greek  or  ASCII 
control  characters  available.) 

And  our  video  graphic  board  gives  you  an  exceptionally 
easy   approach  to  computer  animated  dynamic  displays. 


Our  matrix  approach  allows  direct  addressing  of  each  dot 
in  an  128  by  96  array,  simplifying  dynamic  movement.  And 
unlike  DMA  displays,  our  on-board  RAM  allows  your  CPU 
card  to  do  other  work  during  display  time  and  with  no 
dynamic  RAM  problems.  And  like  our  other  boards,  it  has 
Visaddress  address  selection. 

Quality,  assembled  boards  at  less  than  kit  prices.  But 
what  else  would  you  expect  from  a  company  whose  prime 
product  is  electronic  test  instrumentation  and  microproc- 
essing components? 

Order  direct,  by  check,  BankAmericard  or  Master  Charge 
(Add  $1.50  shipping,  credit  customers  give  us  all  the  card 
numbers,  please  and  Ohio  residents  add  41/2%  sales  tax) 
or  contact  us  for  more  information.  Kent-Moore  Instrument 
Company,  P.O.  Box  507,  Industrial  Ave.,  Pioneer,  Ohio 
43554.(419)737-2352. 


Kent-Moore 
INSTRUMENT  COMPANY 


Circle  40  on  inquiry  card. 


130 


DO    IT    BETTER 

With  the  language  that  is  best  suited  for  your  application:  Business  programming  in 
COBOL,  Scientific  and  Engineering  in  FORTRAN  IV,  Educational  in  BASIC,  and 
Systems  Implementation  in  our  MACRO  ASSEMBLER. 

With  hardware  that  will  grow  with  your  application,  and  protect  your  software  in- 
vestment. 


DO    IT    FASTER 

With  extensive  support  and  utility  programs  to  speed  development  of  your  applica- 
tions software.  These  include  a  Diskette  Operating  System,  Relocatable  Linking 
Loader,  Load  Module  Library  Editor,  Symbolic  Debugger,  and  Text  Editors. 

With  a  16  bit  processor  that  includes  hardware  multiply  and  divide,  real-time  clock, 
and  peripherals  like  single  or  dual  diskette  subsystems  with  integral  DMA  con- 
troller. 


DO   IT   WITH   A   MicroNOVA 


If  you  are  serious  about  computing,  call  or  write 
today.  BPI  Inc.,  2205  East  Broadway,  Suite  6, 
Tucson,  Arizona  85719  (602)  326-6975 


®    NOVA   is  a   registered   trademark  of  Dala   General   Corporation,  Southboro,  Massachu 

Circle  41  on  inquiry  card. 


Circle  42  on  inquiry  card. 


SOFTWARE 


All  programs  include:  Complete  assembler  source  listing, 
sample  output,  hex  dump,  sorted  symbol  table,  plus  com- 
plete instructions  and  thorough  documentation. 
Text  Editing  System  for  6800.  The  best!  SL68-24  $23.50 
NEW  Mnemonic  Assembler  System  for  6800. 
SL68-26  $23.50 

NEW  Stack  Oriented  Arithmetic  Processor 
(6800)  SL68-25  $10.00 

NEW  8080  Klingon  Capture  Space  game.  SL80-7  $6.50 
Special  Game  Packages  Each  containing  6  programs: 

8080  PD80-1  $19.95.     6502  PD65-1  $19.95. 

6800  PD68-1  $16.50 
Complete  6800  Software  Pack  16  programs. 
PD68-3  $35.50 

Battleship  for  6800,  like  the  board  game.  SL68-22  $8.00 
Space  Voyage'"  TSC's  6800  Star  Trek  game. 
SL68-5  $12.00 

Micro  BASIC  Plus  The  best  6800  "Tiny  BASIC" 
SL68-19  $15.95 

Diagnostics  for  6800.  Very  Important!  SL68-23  $10.00 
Stock  Market  for  6800.  Lots  of  fun!  SL68-7  $4.25 
Complete  Catalog  of  all  of  our  programs.  $  .25 
Program-of-the-Month-Club'"  Join  the  hundreds  of 
hobbyists  already  enjoying  this  service.  No  obligation 
and  no  time  valued  cards  to  return.  Discounts  offered. 
One  year  for  $2.00 

To  Order:  Include  3%  postage,  $1.00  handling  on 
orders  under  $10.00.  Indiana  residents  add  4%  sales  tax. 
Check  your  dealer! 


TCP  TECHNICAL  SYSTEMS  CONSULTANTS 
BOX  2574  W.   LAFAYETTE,   INDIANA  47906 


1 6K  STATIC  RAM 


$459 


•  USES  4K  STATIC  RAMS  -  NO  REFRESH 

•  VERY  LOW  POWER  -  LESS  THAN  1  AMP 

•  Z60  FAST  •  250ns  BOARD  ACCESS  TIME 

•  PROVISION  FOR  BATTERY  BACKUP 

•  LOW  PROFILE  SOCKETS  FOR  ALL  CHIPS 

•  EACH  4K  ADDRESSABLE  TO  ANY  4K  SLOT 

•  HARDWARE/SOFTWARE  MEMORY  PROTECT  FOR  EACH  4K 

•  SPECIAL  PAGING  FEATURE  ALLOWS  UP  TO 

1  MEGABYTE  ADDRESSABLE  MEMORY 

•  INSTRUCTION  MANUAL  INCLUDED 

•  30  DAY  WARRANTY  ON  PARTS.  90  DAY  ON  ASSEMBLED  UNITS 

AVAILABILITY:  STOCK  TO  60  DAYS 

PRICES:  ASSEMBLED  $529.  16K  KIT  -  S459,  12K  KIT  -  $354, 

8K  KIT  -  $249.  4K  KIT  -  $149.  4K  EXPANSION  KIT  -  $115 

CONSTRUCTION  MANUAL  FOR  EVALUATION $1 .75 

QUANTITY  DISCOUNT 5  BOARDS— 5% 

10  OR  MORE— 10% 
CASHIERS  CHECK  OR  MO   PREFERRED;   PERSONAL  CHECK 
DELAYS  SHIPPING  2  WEEKS;  COD.  CHARGES  S3  PER  BOARD 
PURCHASE  ORDERS  ADD  5%.      NET  30.  NO  DISCOUNT. 

DEALER  &  OEM  INQUIRIES  INVITED 

OMNI  SYSTEMS  INC. 

P.O.  BOX  7536,  UNIV.  STATION 
PROVO,  UTAH  84602 

READER  SERVICE  NO.  198 


The  user  can  thus  switch  at  any  time 
from  editing  to  assembling  to  debugging. 
Quickrun  allows  the  use  of  symbolic 
debugging.  Being  able  to  refer  to  memory 
locations  by  their  symbolic  names 
eliminates  the  need  to  consult  program 
listings  to  find  hexadecimal  memory 
addresses.  Also  included  in  the  system 
are  memory  protect  features  and  a 
microemulator.  The  latter  allows  the 
user  to  simulate  up  to  20  K  bytes  of 
memory." 

Circle  647  on  inquiry  card. 


A  New  Drafting  Aid  for  Printed 
Circuit  Layouts 


The  Machine  and  Control  Division  of 
Interrotech,  POB  128,  Farmington  ME 
04938,  has  announced  a  new  drafting 
template  for  $8.95  to  be  used  in  design- 
ing "tapeless"  printed  circuit  board 
layouts  using  ink  pens,  or  pencils. 
The  template  produces  pin  layouts 
of  dual  in  line  integrated  circuits  that  are 
twice  actual  size.  The  template  has  a 
versatile  pattern  that  includes  all  the 
popular  sizes   up   to  40   pin    packages." 

Circle  635  on  inquiry  card. 


Badge  Reader  Module  Announced 

RD  Products  Inc,  6132  Route  96, 
Victor  NY  14564,  have  announced  their 
Mark  I  badge  reader  for  $100  in  quanti- 
ties of  1  to  25.  The  reader  is  designed 
to  read  ID  cards  (such  as  credit  cards) 
having  magnetic  stripes.  A  maximum 
of  12  decimal  or  hexadecimal  digits 
can  be  read  on  a  magnetic  stripe  having 


Circle  43  on  inquiry  card. 


132 


Your  microcomputer  is  only  as  good 

as  its  memory 


Your  m  icro- 
computer  is... 
in  a  manner 
of  speaking  . . . 
capable  of  think- 
ing. The  amount 

of  information  you  can  store,  combined 
with  the  access  speed,   determines  the 
bottom  line  capability  of  your  microcomputer. 

The  Midwest  Scientific  Instruments'  FD-8  Floppy 
Disk  Memory  System  will  enable  you  to  get  the 
most  out  of  your  microcomputer.  .  .6800  or  8080. 
We  have  the  most  complete  6800  disk  operating 
system  available  today,  which  interfaces  to  any 
microcomputer  via  a  single  PIA  chip. 

When  used  with  the  MSI  FDOS  Operating 
System. .  .included  with  purchase.  .  .the  FD-8 
gives  your  microcomputer  a  level  of  performance 
which  can  only  be  matched  by  larger  computers. 

You  can  have  program  save  and  load  with 
named,  variable  length,  password  protected 
files  at  three  levels :  object  code  files,  source  code 
files,  and  BASIC  files. 

It  has  disk  routines  which  can  be  used  easily  by 


low  level  assembler  lan- 
guage programs  as  well  as 
high  level  BASIC  programs. 
The  coresident  assem- 
bler/editor saves  and  loads 
source  files  from  disk, 
assembles  and  stores  object 
code  on  disk,  and  creates  assembly 
listings  on  a  high  speed  printer. 
You  get  a  full  ANSI  standard  BASIC  inter- 
preter* with  program  load  and  save,  from  disk  as 
well  as  tape,  with  both  random  and  sequential 
disk  data  files.  BASIC  also  has  multi-l/O  port 
capability  under  software  control. 

And  all  you  need  do  to  access  any  of  these 
functions  is  type  the  appropriate  commands  on 
your  terminal. 
The  FD-8  is  complete,  including  all  power  sup- 
plies, cabinet,  cables,  software,  manuals,  and 
documentation. 

You  can  order  the  FD-8  as  a  kit  for  $1,150.00, 
or  wired  and  tested  for  $1,395.00. 
Visit  one  of  our  dealers  for  a  demonstration, 
or  send  for  our  free  Catalog  of  MSI   products. 


American  Microprocessors 
Equipment  &  Supply  Corp. 
Chicagoland  Airport,  P.O.  Box  515 
Prairie  View,  Illinois  60069 
(312)634-0076 

Microcomputer  Systems,  Inc. 
144  South  Dale  Mabry  Avenue 
Tampa,  Florida  33609 
(813)879-4301 


Micro  Store 

634  South  Central  Expressway 
Richardson,  Texas  75080 
(214)  231-1096 

Vanguard  Systems  Corporation 
6812  San  Pedro 
San  Antonio,  Texas  78216 
(512)  828-0553 


A-Vid  Electronics  Company 
1655  East  28th  Street 
Long  Beach,  California  90806 
(213)  426-5526 

Electronics  for  Yachting 
1525  South  East  16th  Street 
Ft.  Lauderdale,  Florida  33316 
(305)  525-3478 
TWX  510-955-9484 

High  Technology 
1020  West  Wilshire  Blvd. 
Oklahoma  City,  Oklahoma  73116 
(405)  842-2021 

Computer  Workshop 
174  Ifield  Road 
London  England 
SW10  9AG 
01-373-8571 


THidcMMt Scientific 

*)K4t*UUKeHt4> 

220  West  Cedar  •    Olathe,  Kansas  66061    •   913/764-3273 
TWX  910  749  6403  (MSI  OLAT) 

nnnnnnnnnnaDnnDDDnDnnnnnn 

a    Before  I  forget.  .  .send  me  your  catalog 


a    Name 
D  — 

□    Address 

D 

n  Ci(y 

■n    State 
□ 


Zip 


□ 
□ 
□ 
□ 
□ 
D 
□ 


MSI  is  a  dealer  for  Southwest  Technical  Prod 
220  West  Cedar     •     Olathe,  Kansas  66061 

Circle 


BY7  77  O 

nnnnaannnDnnnnnnnannnnnan 

*MSI  BASIC  is  an  additional  $65.00 
ucts  •  Mastercharge  &  BankAmericard  Orders  accepted 

•     913/764-3273     •     TWX  910  749  6403  (MSI  OLAT) 
44  on  inquiry  card. 


up  to  5  mils  of  protective  polyester 
coating.  The  company  is  considering 
the  manufacture  of  a  reader  designed 
to  read  whole  programs  encoded  on 
ID  card  magnetic  stripes." 

Circle  636  on  inquiry  card. 


lit   •••«      •*•••• 


A  Tutorial  Training  Computer 

The  Datac  1  000  computer,  controller 
and  tutorial  card  is  a  new  product 
available  from  Datac  Engineering,  POB 
406,  Southampton  PA  1 8966.  This  card 
is  available  in  two  models,  the  tutorial 
version  and  the  fully  populated  version. 
The  tutorial  version  is  $185  assembled 
and  tested,  with  power  supply;  the  fully 


ilHVili-1CJBpl| 
IIHIIIIL— lit 

milium  ill 

iiirinttittlti 

imiiimtim 


Attention  LSI-11  People 
Wanting  Mass  Storage 

Charles  River  Data  System  Inc,  235 
Bear  Hill  Rd,  Waltham  MA  02 1 54,  has 
announced  its  new  FDIl  Floppy  Disk 
Acld-On  System  lor  PDP-1  I  computers 
as  well  as  LSI-11  microcomputers.  The 
system    was    designed    to    be    hardware, 


populated  version  is  $345  assembled, 
tested  and  with  power  supply.  In  either 
case  you  get  a  6502  processor,  an 
instantly  usable  computer  with  expan- 
sion capabilities,  and  a  unique  system  of 
touch  sensitive  input  keypads,  seen  along 
the  lower  edge  of  the  board  depicted  in 
this  photo.  A  documentation  package  ac- 
companies each  processor  board.* 

Circle  637  on  inquiry  card. 


Make  the  HAL  Connection 


>  8080A  MPU 

1  1K  Monitor/Debug 
Software  in 
2708  EPROM  or 
2-3624  PROMs 

•  On  board  space 
for.  4K  ROM 
(2708),  2K  RAM 
(2102A-4) 


•  24  lines  of 
Parallel  I/O  (8255) 
•  Hardware  "front 

panel"  on  board 

•  Optional 
Accessories: 

CRT  Terminal 
Board,  BASIC  in 
EPROM,  Audio 
Cassette  Interface, 
7K  RAM  Expansion  Board/ 


•  TTY  Current  Loop  or 

RS-232C  serial  I/O  (8251)  EPROM  Programmer,  Power  Supply 

MCEM-8080  from  $375  (2-3624  ROM/1  K  RAM)  or$445  as  shown  (2708  EPROM/2K  RAM) 

and  solve  your  lab  or  OEM  computer  problems 


Connect  to  the  24  lines  of  Parallel  I/O 
and  ASCII  or  Baudot  Serial  I/O. 

2.  Connect  to  processor  bus  to  add  mem- 
ory expansion  board/EPROM  program- 
mer, I/O  devices,  or  our  unique  CRT 
Terminal  Board. 

3.  Connect  to  our  power  supply  or  use 
your  own. 

Lab  users  and  OEM's  alike  will  find  solu- 
tions to  their  computer  problems  with  the 
MCEM-8080  computer.  All  essential  com- 


puter system  elements  are  incorporated  In 
this  fully  assembled,  tested  single-board 
computer.  Some  unexpected  features  of 
the  HAL  MCEM-8080  are:  hardware  "front 
panel"  which  allows  setting  a  breakpoint 
and  manual  control  of  the  computer;  1K 
ROM  Monitor/Debug  Software  (with  user 
callable,  lntel®compatible  I/O  routines) 
which  greatly  simplifies  program  develop- 
ment; Parallel  and  Serial  I/O  on  the  board; 


and  very  reasonable  prices. 
Call  or  write  for  further  information  on  the  HAL  Connection . 
You'll  be  glad  you  did! 

HAL  COMMUNICATIONS  CORP. 

Box  365B    807  E.  Green  Street,  Urbana,  III.  61801 

Telephone  (217)367-7373 


software  and  media  compatible  with  the 
DEC  RX11  products.  It  includes  write 
protect  switches,  unit  select  switches,  up 
to  four  drives  with  one  unit  load  on  the 
DEC  Unibus,  PROM  self-diagnostic  pro- 
grams and  bootstrap  loader.  Track  to 
track  access  time  is  6  ms.  Single  quantity 
price  of  the  drive  and  DEC  compatible 
controller  is  $2750." 

Circle  638  on  inquiry  card. 


Portable  Games 


IHHj 


iPO" 


GarpcK  Pac  \ 


For  the  benefit  of  the  steadily  grow- 
ing ranks  of  pocket  calculator  game 
enthusiasts,  Hewlett-Packard  is  offering 
the  Games  Pac  I.  Intended  for  use  with 
the  company's  HP-67  and  HP-97  pro- 
grammable calculators,  the  package  con- 
tains an  owner's  handbook  (shown)  and 
20  prerecorded  program  cards.  Games 
include  Space  War,  Golf,  Slot  Machine, 
Dice,  and  a  Bowling  Scorekeeper.  The 
price  is  $35.  Contact  Hewlett-Packard, 
1501  Page  Mill  Rd,  Palo  Alto  CA 
94304." 

Circle  648  on  inquiry  card. 

A  New  Version  of  the  PCM-1 2 
Microcomputer 

Pacific  Cyber/Metrix  Inc,  180 
Thorup  Ln,  POB  215,  San  Ramon  CA 
94583,  has  announced  a  new  version 
of  their  PCM-1 2  microcomputer  called 
the  PCM-1 2A.  The  new  unit  is  a  12 
bit  machine  based  on  the  Intersil 
IM6100  microprocessor,  and  is  de- 
signed   to    be    compatible    with     PDP-8 


134 


software.  The  new  model  includes 
the  following  features: 

•  Memory  expandible  to  32  K  bytes 
of  programmable  memory. 

•  Crystal  controlled  data  rate  gen- 
erator to  service  peripherals. 

•  Front  panel  controlled  bootstrap 
loading. 

•  Can  be  expanded  to  run  with 
Digital  Equipment's  OS-8  oper- 
ating system. 

The  unit  is  available  either  assembled 
or  in  kit  form.  The  kit  price  of  $799 
includes  the  control  panel,  1  K  byte  of 
static  programmable  memory,  cabinet 
and  power  supply." 

Circle  639  on  inquiry  card. 


Hewlett-Packard's  Personal  Computer.  .  . 

The  HP983  I  A  desk  top  computer  is  a 
personal    computing    entry    of    Hewlett- 


Minidisk  and  Verbatim™  -  New 
Products  from  ITC 

Information  Terminals  Corporation, 
323  Soquel  Way,  Sunnyvale  CA  94086, 
announces  a  new  proprietary  ferric 
oxide  binder  system  called  Verbatim™ 
This  new  material  will  form  the  storage 
medium  for  the  company's  floppy  disks, 
magnetic     cards,     computer     cartridges, 


Packard,  which  comes  in  at  the  high 
end  of  the  present  day  spectrum  of 
price,  $7200.  This  machine  speaks 
BASIC  with  an  8  K  byte  source  program 
string  area  expandable  to  32  K  maxi- 
mum in  8  K  byte  increments.  It  uses  an 
on  board  tape  drive  with  90  ips  (229 
cm/sec)  search  and  rewind  speed,  22  ips 
(56  cm/sec)  data  transfer  speed.  The 
tape  cartridge  can  hold  approximately 
250,000  bytes  and  is  available  to  BASIC 
applications  programs  as  a  resource.  The 
average  access  time  is  quoted  as  six 
seconds.  Auxilliary  ROM  cartridges  are 
also  available  for  extension  of  its  capa- 
bilities. The  main  display  peripheral  is  a 
32  character  LED  alphanumeric  device, 
and  the  keyboard  is  used  as  the  primary 
interactive  inputs.  Options  include 
printers,  floppy  disks  and  other  goodies. 
For  inquiries  contact  Hewlett-Packard  at 
1501  Page  Mill  Rd,  Palo  Alto  CA 
94304." 

Circle  640  on  inquiry  card. 


digital  cassettes,  mini  data  cassettes 
and  the  MD  525  minidisk.  The  new 
binder  is  said  to  be  more  resilient  and 
less  abrasive  than  previous  binders. 
The  minidisk  is  approximately  half 
the  size  of  the  standard  floppy  disk  and 
provides  one  third  the  storage  capacity. 
Priced  at  $5.95  per  disk,  the  minidisk 
is  intended  for  use  in  the  small  systems 
market  as  well  as  in  power  typing 
and  editing  systems.  When  you  use 
high  speed  digital  media,  this  type  of 
product  will  prove  most  useful." 


Circle  641  on  inquiry  card. 


Bite  Analysis,  Anyone? 

The  latest  issue  of  Complot's  Appli- 
cation Newsletter  describes  a  new  tech- 
nique being  used  at  the  University  of 
Michigan's  School  of  Dentistry.  Re- 
searchers   are    using   computer   graphics 


PAPERBYTES  Design  and  Implementation  of  a 

Tiny  Assembler  6800  —     Microprocessor  Self  Assembler 


$7 


Tiny  Assembler  6800 


Design  and  Implementation 

of  a  Microprocessor  Self  Assembler 

by  Jack  Emmerichs 


Send  today  to: 

BYTE  Interface  Technical  Services,  Inc. 
70  Main  St 
Peterborough  NH  03458 

Dealer  inquiries  invited 

All  orders  must  be  prepaid. 


Originally  described  in  the  April  and  May  1977  BYTE,  PAPERBYTES  is  now  offering 
Jack  Emmerichs'  Tiny  Assembler  6800.  This  book  contains  the  complete  Tiny  Assem- 
bler source  listing  plus  object  code  in  cross  assembly  format  (space  restrictions  prevented 
printing  of  this  material  in  BYTE).  A  barcode  version  of  Tiny  Assembler  is  included  for 
convenience,  as  well  as  reprints  of  Jack's  two  articles  and  additional  user  manual  mate- 
rials. Tiny  Assembler  will  run  on  any  machine  with  Ml  KBUG  and  4K  of  memory  starting 
at  address  0000,  and  is  an  excellent  tool  for  the  interactive  development  of  functional 
blocks  for  a  large  structured  program.  Add  it  to  your  6800  system  and  you'll  have  a 
valuable  programming  aid  which  can  free  you  from  the  drudgery  of  machine  language. 
The  best  part  is  the  price:  only  $7.  Order  yours  today! 


|  Name 

I 

|  Address 

I 

|  City 


State 


7j£_ 


I     J 


PAPERBYTES 
Tiny  Assembler  6800 


Q  Check  enclosed 

□  Bill  MC  #  

□  Bill  BA  #  


Price  of  Book        $ 

Postage,  35  cents  $ 

Total     $ 


Exp.  Date 
Exp.  Date 


Signature 


In  unusual  cases,  processing  may  exceed  30  days, 

Vou  may  photocopy  this  page  if  you  wish  to  leave  your  BYTE  intact. 


No.  700 


JL 


135 


Circle  51  on  inquiry  card. 


■'if  Vs  '    '. 

"igure   2.  The  coordinate    po 

nts  comprising   our 

model      of 

tlie 

literal     craniofacila 

morphology 

of  the 

skuLL 

in  conjunction  with  a  computer  to 
study  how  changes  in  the  number  of 
teeth  through  time  can  affect  the  shape 
of  the  skull  and  face. 


An  X-ray  of  the  skull's  profile  is 
first  digitized  into  177  key  coordinate 
points  to  facilitate  plotting.  A  typical 
plot  is  then  produced  in  30  seconds, 
which  can  be  overplotted  to  show 
deviations  of  the  skull  and  jaw  due  to 
age,  corrective  surgery  or  other  factors. 
Researcher  Dr  Geoffrey  Walker  looks 
upon  the  technique  as  a  major  tool 
which  can  improve  the  quality  of  cor- 
rective facial  surgery  and  other  dental 
techniques.  For  further  information 
contact  Complot  Application  News, 
One  Houston  Sq  (at  8500  Cameron 
Rd),  Austin  TX  78753. ■ 

Circle  642  on  inquiry  card. 

A  New  Economical  6800  Software 
Package 

Users  of  6800  based  microcomputers 
will  be  interested  in  Inpro  Micro  Sys- 
tems' new  software  package  called 
MIKADOS,  a  combination  debugging 
program,  assembler  and  operating  sys- 
tem which  resides  in  2.5  K  bytes  of 
programmable  memory.  The  assembler 
generates  object  code  on  the  same  line 
as  the  user's  mnemonic  to  provide  an 
immediate  program  listing.  The  price, 
which  includes  user  manual  and  hexa- 
decimal object  code  listing,  is  $12.95. 
Contact  Inpro  Micro  Systems,  POB 
7776,  Van  Nuys  CA  91409." 

Circle  643  on  inquiry  card. 


With  a  Small  Floppy  Disk, 
Where  Does  One  Get  Media? 

Media  (for  those  new  to  the  term)  is 
a  generic  name  for  tapes,  floppy  disks, 
hard  surface  disks,  etc,  which  can  store 
data.  International  Terminals  Corpo- 
ration has  recently  introduced  a  new  line 
of  floppy  disk  media  for  use  with  the 
new  drives  such  as  the  Shugart  Mini- 
Floppy.  The  price  of  the  ITC  MD  525 
flexible  disk  cartridge  is  $5.25  in  single 


Now  available  direct  from  manufacturer. . 

PS-40 

48-column 
Thermal  Printer 

•  64  ASCII  characters  (upper  case) 

•  TTL  level  parallel  interface 

•  STROBE-BUSY  handshaking 

•  Active  low  new  line  implementation 

•  Local  line  feed  (continuous) 

•  20  characters-per-second  throughput 
PS-40  mechanism  and  Print  Head  $250 

With  TTL  parallel  interface  —  kit $350 

With  TTL  parallel  interface  — 

assembled  and  tested  $400 

PS-40  with  versatile  multifunction  RS-232C 

interface  (F-8  microprocessor)  — 

assembled  and  tested  $550 

Power  supply $100 

Case  $  80 

Paper  roll  (5%"  x  164)  $    3 

Shipping  Charges  $    4 

•  Delivery  —  Four  weeks  ARO, 
F.O.B.  Addison,  Texas 

Please  complete  and  return  coupon  with  check  or  Master  Charge 
number.  Money  back  guarantee!  Texas  residents  add  5%  sales  tax. 

telpar,  inc. 


To:Telpar,  Inc. 

4132A  Billy  Mitchell  Road,  P.O.  Box  796 
Addison,  Texas  75001     Telephone  (214)  233-6631 

□  Enclosed  is  my  check  in  the  amount  of  $ 

purchase  of . 


covering 


I 

□  Place  my  order  on  Master  Charge,  please.  My  MC  number 

;  expiration  date  is l 


Signature 

Name  (please  print)  _ 

Address 

City 


_State_ 


Zip 


Circle  46  on  inquiry  card. 


136 


quantities,  and  the  press  release  says 
delivery  is  from  distributor  stocks.  The 
company  is  located  at  323  Soquel  Way, 
Sunnyvale  CA  94086." 

Circle  644  on  inquiry  card. 


Not  for  the  Casual  Amateur,  But  .  .  . 


This  "Traverscan"  absolute  free 
cursor  digitizer  from  the  H  Dell  Foster 
Company,  POB  32581,  San  Antonio  TX 
78216,  is  an  interesting  idea  which 
experimenters  might  find  challenging  to 
emulate.  This  is  a  real  time  graphic 
digitizer  which  measures,  counts  and 
displays  the  X  and  Y  coordinate  values 
of  points,  with  six  digits  per  axis  read 
directly  in  English  or  metric  units. 
Numerous  operational  features  include 
electronic  scaling,  2  axis  scalable  inte- 
grator (or  digital  planimeter)  for  auto- 
matic area  compulation,  and  of  course, 
output  interfaces  through  RS-232C  serial 
lines  so  that  the  data  can  be  captured  by 
a  computer.  One  uses  a  graphic  digitizer 
to  get  information  from  drawings  into  a 
computer  by  tracing  lines  and  tracing 
around  regions.  The  complexity  of  this 
particular  device  strongly  suggests  it  has 
some  microprocessor  intelligence  built 
into  it  locally.  H  Dell  Foster  Company  is 
a  subsidiary  of  the  Keuffel  and  Esser 
Company." 

Circle  649  on  inquiry  card. 


Improving  Your  Memory 

If  you  want  to  experiment  with 
APL  or  other  sophisticated  data  con- 
structs requiring  extensive  memory  space, 
(see  the  editorial  in  the  November  1976 
BYTE),  you  may  be  interested  in  the 
new  64  K   byte   programmable  memory 


THE  COMPUTER  ROOM 

SMALL  COMPUTER  SYSTEMS  •  SOFTWARE  •  AMATEUR  RADIO  EQUIPMENT 

3455  Southwest  Temple       Salt  Lake  City,  Utah  841 15      Phone:801-486-4311 


"WE  TAKE  THE 

insasn  out  of  the  mora " 


One  Of  The  Nations  Largest 
Full-Service  Computer  Stores. 


Over  1600  Square  Feet  Of  Sales 
And  Service  Facilities. 


WHEN  YOU  WRITE  FOR  OUR  CATALOG  AND  ENCLOSE  $1  TO 
HELP  DEFRAY  THE  COST  OF  HANDLING  AND  MAILING, 
HERE'S  WHAT  YOU  GET: 

1.  A  CERTIFICATE  GOOD  FOR  $2  ON  YOUR  NEXT 
PURCHASE 

2.  THE  COMPUTER  ROOM  EASY  TO  UNDERSTAND 
CATALOG  COVERING 

I  MS  A I 

THE  DIGITAL  GROUP 

POLYMORPHIC  SYSTEMS 

SOUTHWEST  TECHNICAL  PRODUCTS  CORPORATION 

TECHNICAL  DESIGN  LABS 

ETC. 

3.  the  COMPUTER  ROOM  -easy  guide-  to  help  you 

PICK  THE  RIGHT  SYSTEM,  PERIPHERALS,  COMPONENTS, 
AND  SOFTWARE  FOR  

THE  BEGINNER 
THE  ADVANCED 
THE  EXPERT 
THE  SMALL  BUSINESS 


4.  A  CURRENT  LISTING  OF  PRESENTLY  AVAILABLE   

SOFTWARE 

PUBLICATIONS 

PERIPHERALS 

5.  INFORMATION      ON      REPAIR      SERVICE,     LOW     COST 
CUSTOM  PROGRAMMING  AND  OTHER  SPECIAL  SERVICES. 


AT  THE  COMPUTER  ROOM  YOUR  written  questions 
AREHAPPILY  RECEIVED  AND  PROMPTLYANSWERED  


WE  ALSO  STOCK  A  COMPLETE 
LINE  OF  AMATEUR  RADIO  EQUIPMENT 


BANKAMERICARD 
137 


MASTERCHARGE 

Circle  47  on  inquiry  card. 


Complete  listing  of  all  fea- 
ture articles  appearing  in 
Volume  I  of  BYTE- 
September,  1975  thru  De- 
cember 1976.  Indexed  for 
easy  reference.  Includes  all 
errata. 

To  get  yours,  send  a  $.24 
stamped  self  addressed  en- 
velope to: 

free       BYTE  Index 
70  Main  Street 
Peterborough   NH  03458 


board  recently  announced  by  Extensys 
Corporation,  592  Weddell  Dr,  Suite  3, 
Sunnydale  CA  94086.  The  5  by  10  inch 
(12.7  by  25.4  cm)  board  has  a  hardware 
provision  for  bank  switching  to  add  over 
one  million  bytes.  This  Altair  compatible 
board  also  allows  memory  address  to  be 
set  in  8  K  byte  increments  and  provides 
hardware  protection  in  16  K  byte 
increments.  Power  supply  voltages  re- 
quired are  12V  300  mA,  5  V  750  mA, 
and  —5  V  1mA  (Power  supplies  are  not 
included).  Memory  overlap  protection  is 
provided  to  prevent  conflict  with  existing 
memories.  The  price  of  the  64  K  byte 
board  is  $1,495.  A  32  K  byte  board  is 
available  for  $895,  and  a  48  K  byte 
board  for  $1,195." 

Circle  650  on  inquiry  card. 


Voice  Synthesizers,  Anyone? 


MICOM  Systems,  9551  Irondale  Av, 
Chatsworth  CA  91311,  is  manufacturing 
a  Voice  Response  System  intended  for 
minicomputers,  which  uses  a  micro- 
processor as  a  control  element.  The  press 
release  describes  a  system  which  can 
accept  Touch-Tone  encoded  inputs  and 
give  digitally  generated  synthetic  voice 
outputs.  This  system,  which  is  definitely 
oriented  toward  commercial  systems 
markets,  has  prices  beginning  at  $500.* 

Circle  651  on  inquiry  card. 


A  Decimal  Order  of  Magnitude 
Difference  in  Price 


We  received  this  picture  of  a  new 
Model  100A  Logic  Analyzer,  produced 
by  Paratronics  Inc,  150  Tait  Av,  Los 
Gatos  CA  95030,  and  seen  in  some  detail 
in  Popular  Electronics,  February  1977. 
This  unit  is  available  in  a  complete  kit 
for  $198.50,  along  with  a  100  page 
assembly       and      applications      manual. 


According  lo  its  makers  it  compares 
quite  favorably  with  commercial  labora- 
tory equipment  products  costing  $2750 
(and  up).  The  output  display  is  on  an 
ordinary  oscilloscope,  with  blanking,  and 
consists  of  a  truth  table  of  the  last  16 
states  of  a  1  byte  word  of  data.  Various 
other  useful  features  make  this  an 
interesting  test  instrument  which  may 
prove  useful  to  many  of  our  readers." 

Circle  652  on  inquiry  card. 


Two  New  Dajen  Cassette  Interfaces 

Dajen  Electronics,  7214  Springleaf 
Ct,  Citrus  Heights  CA  956 1 0,  has  an- 
nounced two  new  cassette  interface 
boards  compatible  with  the  Altair  bus. 
The  first  board  is  a  universal  cassette 
interface  called  the  UCRI,  available 
for  $1  75  assembled  or  $  I  35  in  kit  form. 
Data  transmission  rate  is  user  selectable 
from  520  to  41,000  bps.  The  unit 
can    be    optionally    equipped    with    two 


Texas  Instruments  Introduces  12  Digit 
VLED  Display  Board 

Thinking  about  your  own  custom 
decimal  displays?  Texas  Instruments 
has  announced  a  multidigit  visual  light 
emitting  diode  (VLED)  display  stick 
with  12  digits  on  a  single  board,  called 
the  TIL804.  The  characters  are  7  seg- 
ment red  VLEDs,  0.27  inches  (0.66  cm) 
high;  typical  brightness  is  500  micro- 
candelas  at  20  mA.  The  display  stick 
features  right  hand  decimals  at  each 
digit,  continuous  uniform  brightness 
of  segments  within  each  digit,  and  a 
wide  viewing  angle  for  distances  up  to 
15  feet.  It  is  presently  available  in  a 
common  cathode  configuration  to  facili- 
tate multiplexing.  Intended  commercial 
applications  include  Citizens'  Band  ra- 
dios, scanners,  digital  instrumentation, 
electronic  games,  medical  electronics, 
test  and  measurement  equipment  and 
desk  top  calculators;  these  would  make 


excellent      numeric      displays     for     the 
experimenter  as  well. 

The  price  of  the  board  is  $14.65 
in  quantities  up  to  100  and  $11.65 
eacli  in  quantities  above  100  to  999. 
Write  Texas  Instruments,  POB  5012, 
Dallas  TX  75222." 

Circle  659  on  inquiry  card. 


reed  relays  allowing  the  unit  to  inde- 
pendently control  two  cassette  re- 
corders. The  second  interface  board, 
the  CRI-B,  has  a  maximum  data  trans- 
mission rate  of  6000  bps  and  is  avail- 
able for  $165  assembled  or  $120  as  a 
kit." 

Circle  571  on  inquiry  card. 


A  Source  of  Neat  Ideas 

Persons  interested  in  discovering  the 
functional  characteristics  of  a  well 
thought  out  editing  terminal  design 
would  do  well  to  look  at  the  new 
"2645A  Display  Station  User's  Manual," 
publication  number  02645-9000 1,  put 
out  by  Hewlett-Packard  Data  Terminals 
Division.  (Inquiries  should  be  addressed 
to  Inquiries  Manager,  Hewlett-Packard 
Company,  1501  Page  Mill  Rd,  Palo  Alto 
CA  94304.)  This  pamphlet  of  approxi- 
mately 40  pages  in  length  is  the  user's 
manual  for  this  microprocessor  con- 
trolled data  terminal  with  editing  capa- 
bilities, which  make  it  extremely  adapt- 
able to  numerous  practical  tasks." 

Circle  658  on  inquiry  card. 


A  New  Tutorial  Kit  from  Motorola 

Motorola  has  announced  a  new 
8  bit  6800  based  microprocessor  kit 
for  tutorial  purposes  called  the  Edu- 
cator  II.  The  unit  contains  a  128  byte 


IN  WIRE-  WRAPPING  <^R)  HAS  THE  LINE. . . 


MODEL 


WD-30 


I 


WIRE  DISPENSER 

■  50  FT.  ROLL  OF  30  AWG. 
KYNAR   WIRE-WRAPPING  WIRE 

■  CUTS  THE  WIRE  TO  LENGTH 

■  STRIPS  1  INCH  OF  INSULATION 

AVAILABLE  IN  FOUR  COLORS 


WD-30-B  BLUE  WIRE 

WD-30-Y  YELLOW  WIRE 

WD-30-W  WHITE  WIRE 

WD-30-R  RED  WIRE 


EACH 


PATENT  PENDING 


MINIMUM  BILLING  $25.00 
ADD  SHIPPING  CHARGE  $1.00 
NEW  YORK  STATE  RESIDENTS 
ADD  APPLICABLE  TAX 

®KYNAR  PENNWALT 


OK  MACHINE  &  TOOL  CORPORATION 

3455  Conner  St.,  Bronx,  N.Y.  10475    (212)  994-6600  /  Telex  125091 


139 


Circle  20  on  inquiry  card. 


programmable  memory,  a  512  byte 
read  only  memory  and  a  TTL  clock 
circuit. 

An    executive    program    residing    in 


the  read  only  memory  contains  rou- 
tines for  servicing  interrupts,  program 
transfer  to  and  from  cassettes,  tape 
searching  programs,  and  a  program  to 
test  the  finished  kit.  The  executive 
program  uses  14  bytes  of  the  program- 
mable memory  as  a  scratchpad  mem- 
ory, leaving  114  bytes  for  user  pro- 
grams. An  optional  128  bytes  of  pro- 
grammable memory  can  be  added 
later. 

The  Educator  II  comes  with  an 
aluminum  case  for  $169.95,  including 
assembly  and  operating  manuals.  The 
unit  is  available  from  Motorola  dis- 
tributors. For  further  information,  dis- 
tributors and  computer  stores  should 
contact  Motorola  HEP/MRO  National 
Sales  Manager,  705  W  22nd  St,  Tempe 
AZ  85282.- 

Circle  657  on  inquiry  card. 


Timesharing  Software  Listing  Available 

Gregory  Research  Associates,  1900 
Greymont  St,  Philadelphia  PA  19116, 
are  making  available  a  directory  entitled 
Remotely  Accessible  Conversulional  Pro- 
grams and  Data  Bases.  The  price  is  $28, 
which  includes  three  bimonthly  updates. 
The  listing  is  a  guide  to  thousands 
of  programs  for  timeshare  users  in  the 
areas  of  business,  engineering  and 
science.  The  programs  listed  are  written 
in  a  conversational  style  which  requires 
no  special  knowledge  of  computer 
languages.  Users  pay  only  for  those 
programs  used  based  on  rates  listed 
in  the  directory.  Programs  are  received 
via  standard  telephone  lines;  some 
require  terminal  data  rates  of  120 
characters  per  second." 

Circle  653  on  inquiry  card. 


A  Processor  Board  with  Expanded 
Features 


Morrow's  Micro-Stuff,  POB  6194, 
Albany  CA  94706,  announces  an  Altair 
bus  compatible  plug-in  processor  board 
designed  to  expand  the  capabilities 
of  existing  8080a  microcomputer  sys- 
tems. Available  for  $325  assembled  or 
$250  as  a  kit,  the  board  offers  two  spe- 
cial features.  The  first  enables  the  user 
to  step  through  a  program  at  a  rate 
variable  from  1  to  65,000  steps  per 
minute.  The  second  feature  prevents 
the  8080a  processor  from  shutting 
off  after  a  HALT  instruction.  While 
in  this  state,  registers,  memory  and  IO 
locations  can  be  examined  and  altered. 
A  built-in  12  pad  keyboard  and  10  digit 
readout    are    included    on    the    board." 

Circle  654  on  inquiry  card. 


A  New  6800  Microcomputer 
Evaluation  Kit 

A  new  microcomputer  evaluation 
kit  for  M6800  systems  is  now  available 
from  the  Integrated  Circuit  Division  of 
Motorola  Inc.  This  kit  will  prove  quite 
useful   to  those  individuals  with  a  min- 


imal    budget    and    a     keen    interest    in 
computers. 

The  MEK6800D2  kit,  when  assem- 
bled, is  a  fully  functional  microcomputer 
system  based  on  the  MC6800  micro- 
processing unit  and   its   family   of  asso- 


THE 


8700  COMPUTER/  CONTROLLER 


An  exceptional  price  on  an  applications  oriented  6503  based  micro-processor  system 
featuring: 

►  IK  bytes  RAM  locations  (512  bytes  supplied) 

►  IK  bytes  ROM(25G  byte  monitor  included) 


►  2  -  8  bit  input  ports 

►  2-8  bit  output  ports  (Hatched,  1  buffered) 

►  24  key  touch  operated  keypad  (used  by  monitor 
to  allow  entry  &  execution  of  user  programs 
also  user  definable. ) 

►  2  -  latched  seven  segment  displays  (used  by 
monitor  to  display  memory  location  &  contents 
easily  user  programmed) 

►  Optional  cassette  interface  ($22.  50)  fits 
entirely  on  the  processor  board. 


THE  IDEAL.  LOW  COST  S0L0TI0N  TO  IMPLEMENTING  ALL 
THOSE  WILD  COMPUTER  BASED  CONTROL  SYSTEMS 
YOU'VE  BEEN  DREAMING  OF! 

PAIA  software  currently  available  or  under 
development  includes:  Music  synthesizer 
interface:  Home  applications  package  including: 
multi-zone  fire/burglar  alarm,  real  time  clock, 
energy  saving  heat/air  conditioning  control, 
computer  generated 'tloor-beH":  Model  roalroad 
controller  and  more 

8700  COMPUTER  CONTROLLER  KIT $149.95 

(requires  5v.  (»  1.  2A.  ;  12v.  @  150  ma. ) 
Shipped  direct  from  PAIA  (add  $3.  00  postage) 


ELECTRONICS  •  DEPT.  7  0  •    1020  W.  Wilshire  Blvd.  •  Oklahoma  City.  OK  73116 


Also  available  at  FULL- LINE  Computer  stores. 


Circle  49  on  inquiry  card. 


140 


ciated  memory  and  IO  devices.  It  is 
made  up  of  two  basic  units,  a  micro- 
computer module,  9.75  by  8.3  inches 
(24.8  by  21  cm),  and  a  keyboard  and 
display  module,  10  by  6.25  inches 
(25.4  by  15.9  cm).  The  keyboard  and 
display  module  also  contains  audio 
cassette  interface  circuitry  for  the 
Kansas  City  Standard,  300  bps  redun- 
dant phase  encoding. 

The  display  consists  of  six   7  segment 


LED  readouts  that  display  four  address 
digits  and  two  data  digits  in  hexadeci- 
mal format.  The  keyboard  is  hexadeci- 
mal with  eight  additional  command 
keys. 

Also  included  in  the  kit's  three-ring 
binder  is  an  assembly  manual  that 
covers  testing,  schematics,  "JBUG"  mon- 
itor program  listing  and  parts  listing. 
An  M6800  Programming  Reference  Man- 
ual    and     the     M6800     Microcomputer 


A  Summary  Detail  of  the  MEK6800D2 

The  eight  command  keys  are: 

M  Examine  and  change  memory. 

E  Escape  from  operation  in  progress. 

R  Examine  contents  of  processor  registers  P,  X,  A,  B,  CC  and  S. 

G  Go  to  specified  program  and  begin  execution. 

P  Transfer  programs  or  data  from  memory  to  cassette  tape. 

L  Load  memory  from  cassette  tape. 

I\l  Trace  one  instruction. 

V  Set  (and  remove)  breakpoints. 

The  Microcomputer  Module  includes  the  following  devices: 

1  MC6800  MPU 

1  MCM6830  read  only  memories  with  JBUG  monitor  (SCM44520P) 
3  MCM6810  programmable  memories  (128  by  8  for  384  bytes  total) 

2  MC6820  peripheral  interface  adapters  (PIA) 

1  MC6850  asynchronous  communications  adapter  (ACIA) 

1  MC6871  B  clock  generator 

In  addition,  the  board  has  been  engineered  to  accept  the  following  optional 
devices  (not  included  with  the  kit): 

2  MCM6810  programmable  memories  (128  by  8) 

2  MCM68708  erasable  read  only  memories 

3  MC8T97  buffers 

2  MC8T26  bidirectional  buffers 

Custom  expansion  on  the  Microcomputer  Module  by  the  homebrewer  is 
simplified  by  a  wire  wrap  area  that  will  accommodate  two  24  pin  and 
twelve  16  pin  sockets.  The  JBUG  monitor  read  only  memory  can  be  re- 
placed by  a  Mini  Bug  II  read  only  memory  for  RS232  interface  to  other 
peripherals. 


System  Design  Data  book  are  also  part 
of  this  package.  The  kit  may  be  used 
"as  is"  or  expanded  to  a  full  64  K 
system  through  addition  of  buffers 
(and  minor  modifications  of  on  board 
memory  decoding). 

Cost  of  the  kit  is  $235,  and  it  is  avail- 
able from  Motorola  Distributors.  The 
5  V,  2  A  power  supply  and  cassette 
recorder  required  by  this  device  are  not 
included,  and  can  be  purchased  locally." 

Circle  655  on  inquiry  card. 


A  New  Prototyping  Board 


_JUfe ■     ■ 

,  !#MWH!|lllLi 

mih  ma  »HAig*Tny  "•  •" 

fiWHMBfl^^^MV  ■ 

■■■.\V.\. .:.'-:           ,           ; 

•■•  ■                   .,...-..,-. 

'  ;;''>:3':?^-:^^^ggfflB9|l 

safe..  .       .   - 

-"  SiiiiSBilHiil 

mm%M5!^*$*mii 

^mmmmmmM\ 

life.           

:;rSii&i5iHf»tO&| 

ISliSItlfiSK;;: :. 

.    ..     ■    .:.:■.       .    :■  '..:...     .'    ..   '  ,\    '. 

=■  eftaaM&fer 

~      itmmnmmti 

A  new  general  purpose  printed  circuit 
board  for  the  experimenter  is  avail- 
able from  World  Wide  Systems  Corpor- 
ation, 8305  Private  La,  Annandale  VA 
22003,  for  $24.95  postpaid.  The  100 
pin  board  is  Altair  bus  compatible 
and  features  two  gold  plated  36  pin 
IO  strips.  A  portion  of  the  board  has 
been  reserved  for  the  installation  of  a 
voltage  regulator  and  heat  sink;  the 
power  bus,  ground  plane  and  pins  are 
labelled.  Board  dimensions  are  5.125 
by  10  inches  (13.02  by  25.4  cm). 
The  board  can  be  used  with  point  to 
point  solder  connections,  wire  wrap 
or  a  combination  of  the  two.  With  this 
tool  the  experimenter  can  try  his  hand 
at  designing  custom  peripheral  inter- 
faces." 

Circle  656  on  inquiry  card. 


INTERNATIONAL  DATA  SYSTEMS,  INC. 


400  North  Washington  Street,  Suite  200 
Falls  Church,  Virginia  22046  USA 
Telephone  (703)  536-7373 


S100  Bus    Cards  (ALTAIR/IMSAI  Compatible) 

88-SPM  Clock  Module 


USES 


88-UFC  Frequency  Counter  Module 

88-MODEM     Originate/Answer  MODEM 

GENERAL  PURPOSE  PERIPHERALS 


MCTK 


TSM 


DAC8 


Morse  Code  Trainer/Keyer 
Temperature  Sensing  Module 


Your  computer  keeps  time  of  day  regardless  ol  what  program  it  is  executing. 
Applications  include  event  logging,  data  entry,  ham  radio,  etc.  Provision  for 
battery  backup  is  included 

Measure  frequencies  up  to  600  MHz  or  period  with  1/10  microsecond  resolu- 
tion. Computer  can  monilor  four  separate  inputs  under  software  control. 

Use  your  computer  to  call  other  computer  syslems  such  as  large  timesharing 
systems.  Also  allows  other  computer  terminals  to  "dial-up"  your  computer. 
Auto-dialer  is  included  so  your  computer  can  call  other  computers  under  soft- 
ware control.  Operates  at  1 10,  134.5.  150.  300,  and  600  band. 

Hard/Software  package  which  allows  your  computer  to  teachMorse  Code,  key  your 
transmitter,  and  send  prestored  messages.  Uses  "NEW  CODE  METHOD"  for  training. 

Use  it  to  measure  inside  and/or  outside  temperature  for  computerized  climate 
control  systems,  etc. 


Requires  one  eight  bit  TTL  level  latched  parallel  output  port  Use  it  to  produce 
computer  music  or  to  drive  voltage  controlled  devices 


KIT  PRICE 


$96.00 


$179.00 


$245.00 


$29.00 
$24.00 


Eighl  Bit  Digital  to 
Analog  Converter 

Terms:  Payment  with  order.  Shipment  prepaid.  Delivery  is  stock  to  30  days.  Write  or  call  for  detailed  product  brochures. 


$19.00 


141 


Circle  50  on  inquiry  card. 


Christopher  D  Glaeser 
3904  NW  15th  St 
Gainesville  FL  32605 


Programming  Ouickies 


Novel  8  Bit  Multiplication 


Here  is  a  I  byte  multiplication  routine 
that  was  submitted  by  Christopher  D  Glaeser 
for  use  on  an  Intel  8080  along  with  his  idea 
on  how  to  save  memory  space  and  execution 
time.  Working  on  the  premise  that  one  of 
the  main  problems  with  many  multiplication 
routines  is  that  they  must  call  another 
routine  to  perform  a  double  byte  shift,  he 
uses  the  DAD  H  command  of  the  8080  to 
surmount  this  difficulty.  The  DAD  H  com- 
mand performs  the  double  byte  shift  by 
adding  the  HL  register  pair  to  itself.  This 
saves  having  to  call  another  routine  to 
perform  this  function.  The  operands  are 
loaded  into  the  C  and  D  registers  prior  to 
calling  the  subroutine.  The  resulting  answer 
is  placed  in  the  BC  register  pair.  All  of  the 
numbers  in  this  listing  are  in  octal. 


Address 

Op 

Operand 

Label 

Mnemonic 

Commentary 

006000 

325 

PUSH  D 

1           save  original  values  of  registers 
J           on  stack; 

006001 

345 

PUSH  H 

006002 

132 

MOV  E,D 

E:=first  operand; 

006003 

026 

000 

MVI  D.000 

) 

006005 

152 

MOV  L,D 

006006 

142 

MOV  H,D 

>           initialize  registers; 

006007 

006 

010 

MVI  B.010 

) 

00601 1 

171 

MOV  A,C 

A:=second  operand; 

006012 

037 

LOOP 

RAR 

A:=A/2; 

006013 

322 

017  006 

JNCSKIP 

if  CY:=0go  to  SKIP; 

006016 

031 

DAD  D 

else  HL:=HL+DE; 

00601 7 

353 

SKIP 

XCHG 

exchange  HLwith  DE; 

006020 

051 

DAD  H 

HL:  =  HL*2; 

006021 

353 

XCHG 

exchange  HLwith  DE; 

006022 

005 

DCR  B 

B:=B-1; 

006023 

302 

01 2  006 

JNZ  LOOP 

if  CY:=0go  to  LOOP; 

006026 

104 

MOV  B,H 

else  B:  =  H;  [high  order  8  bits  of  answer 

006027 

115 

MOV  C,L 

C:  =  L;  [low  order  8  bits  of  answer) 

006030 

341 

POP  H 

[          restore  original  value  of  register 

006031 

321 

POP  D 

006032 

311 

RET 

return  to  calling  program;" 

COMPUTER  ENGINEERING 


THE  MIDNIGHT  SPECIAL  .  .  . 

...  a   full  color  limited  edition  poster 

Jones  fantasies. 


for  your  Casey 


The  poster  is  1 6V2  by  21  Vi  inches  (41 .9  by  54.6  cm)  with 
a  white  border.  The  colors  are  the  same  as  the  original 
by  Robert  Tinney,  which  graces  our  July  cover,  minus 
the  BYTE  logo.  The  price  is  $3.00,  plus  50*  postage.  It 
is  shipped  unfolded,  in  a  mailing  tube. 

ORDER  NOW.  SUPPLIES  ARE 
LIMITED. 


BITS  Inc 

70  Main  Street 

Peterborough  NH  03458 

□  Bill  BankAmericard 

□  Bill  Master  Charge 
No 


Posters  $3.00  each 
plus  $  .50  mailing 

□  Check  Enclosed 

$ 
Exp.  Date 


Mame_ 


In  unusual  cases,  processing  may  exceed  30  days. 


Address, 
City 


.State Zip_ 


I- J 


Circle  51  on  inquiry  card. 


142 


The  volume  we've  been  waiting  for!' 


The  Best  Of  BYTE,   Volume  I 


The  answer  to  those  unavailable  early  issues  of  BYTE.  Best  of 
BYTE,  Volume  I,  edited  by  Carl  Helmers  Jr  and  David  Ahl.  This 
384  page  book  is  packed  with  a  majority  of  material  from  the  first 
12  issues.  Included  are  146  pages  devoted  to  "Hardware"  and 
how-to  articles  ranging  from  TV  displays  to  joysticks  to  cassette 
interfaces,  along  with  a  section  devoted  to  kit  building  which 
describes  seven  major  kits.  "Software  and  Applications"  is  the 
other  side  of  the  coin:  on-line  debuggers  to  games  to  a  complete 
small  business  accounting  system  is  included  in  this  125  page 
section.  A  section  on  "Theory"  examines  the  how  and  why  behind 
the  circuits  and  programs.  "Opinion"  closes  the  book  with  a  look 
ahead  as  to  where  this  new  hobby  is  heading.  It  is  now  available 
through  BITS  Inc  for  only  $11.95  and  50  cents  postage  and 
handling. 

Here  is  just  a  taste  of  some  of  the  titles  to  be  found  in  the  Table  of 
Contents,  from  the  nearly  70  that  appear  there: 

The  Shadow,  Buck  Rogers,  and  the  Home  Computer Gardner 

The  State  of  the  Art  —  Helmers 

Could  a  Computer  Take  Over?  —  Rush 

A  Systems  Approach  to  a  Personal  Microprocessor  —  Suding 

Programming  for  the  Beginner  —  Herman 

Magnetic  Recording  for  Computers Manly 

Assembling  an  Altair  8800  —  Zarrella 

Build  a  6800  System  With  This  Kit Kay 

The  Digital  Equipment  LSI-11  —  Baker 
Flip  Flops  Exposed  —  Browning 
Keyboard  Modification  —  Macomber 

Build  a  Television  Display Gantt 

Build  a  Fast  Cassette  Interface  —  Suding 

Add  a  Kluge  Harp  to  Your  Computer  —  Helmers 

Write  Your  Own  Assembler Fylstra 

Design  a  On  Line  Debugger Wier  and  Brown 

Processing  Algebraic  Expressions  —  Maurer 

Total  Kitchen  Information  System Lau 

A  Small  Business  Accounting  System  —  Lehman 

Books  of  Interest 

Magazines 


Circle  51  on  inquiry  card. 


Best  of  BYTE,  Volume  1 

Send  to: 

Bits,  Inc. 

70  Main  Street 

Peterborough  NH  03458 


Check  Payment  method: 

My  check  is  enclosed 

Bill  my  MC  No.. 


-Bill  my  BAC  No.. 


.  Exp.  date . 
Exp.  date . 


ixiame 
Address 

Citv 

State 

Zip  Code 

Signature 

.  books 


You  may  photocopy  this  page  if  you  wish  to  leave  your  BYTE  intact. 


Price  of  book    $11.95 
Postage,  50  cents  per  book  for_ 
Grand  Total 


Prices  shown  are  subject  to  change  without  notice. 

All  orders  must  be  prepaid. 

In  unusual  cases,  processing  may  exceed  30  days. 


143 


Gourmet  Reading  from  BITS 


»     M  ^k>  c%& 

""t<:elfoi 

Software 
Gourmet  guide  | 

(^fcook 

^KHW  iwrtiw 

Scelbi 

Software 
Gourmet  Quide 

<5goki 
9ook 


S 


HUM    (WWIillU 

coNiuiMO  mt. 


-Scelbi     "6800"     Software     Gourmet 


Guide  &  Cookbook 


-Scelbi     "8080"     Software     Gourmet 


Guide  &  Cookbook,  both  by  Robert  Find- 
ley.  Have  you  tried  cooking  up  a  program 
lately  on  your  6800  or  8080  processor? 
Have  you  needed  a  dash  of  ideas  on  how  to 
add  spice  to  a  program?  Then  the  Scelbi 
"6800"  Software  Gourmet  Guide  &  Cook- 
book and  the  Scelbi  "8080"  Software  Gour- 
met Guide  &  Cookbook  may  prove  to  be 
quite  useful  additions  to  your  library. 

Both  books  contain  a  wealth  of  informa- 
tion on  the  6800  and  8080  instruction  sets, 
plus  general  programming  techniques  ap- 
plied to  the  8080  and  6800,  conversion  rou- 
tines, floating  point  routines,  decimal  arith- 
metic routines,  and  much  more.  Order  yours 
today  and  get  a  taste  of  what  your  processor 
can  do.  Both  books  are  priced  at  $9.95 
each. 


■■■■■■■■■■■■ 


BDMEDJCflL  , 
ELECTRQNICSi 


IffiMBI 

■  ■■■i 

■  ■■■i 
■■■■■■i 


!■■■■! 
II 


II 

■nmmmnmBi 
■■■■■■■■■■■■■■■■■■■■■i 
--■■■■■■■■■■■■■■■■i 
■■■■■■■■■■■■■■■■- 


^.Security  Electronics  by  John  E  Cun- 
ningham. To  catch  a  thief,  apply  liberal 
doses  of  ingenuity  and  a  modicum  of 
cleverness.  Find  out  what's  been  tried  in 
conventional  alarm  systems  before  you  go 
off  computerizing  your  home  security  sys- 
tem, though.  New  2nd  edition  $5.95 


Introduction  to  Biomedical  Elect- 
ronics by  Edward  J  Bukstein.  What's  been 
done  in  robot  doctors?  Nothing  so  far.  But 
in  terms  of  electronic  aids  to  physicians  and 
practices  of  health  researchers,  consult  this 
background  review  of  the  field  of  biomed- 
ical electronics  $5.95 


-Practical       Microcomputer      Program- 


ming: The  Intel  8080  by  W  J  Weller,  AV 
Shatzel,  and  H  Y  Nice.  Here  is  a  comprehen- 
sive source  of  programming  information  for 
the  present  or  prospective  user  of  the  8080 
microcomputer,  an  architecture  which  ap- 
pears in  the  MITS  Altair,  8800,  Processor 
Technology  SOL,  I  MSA  I  8080,  Polymor- 
phics  POLY-88,  and  other  popular  micro- 
computer system  products. 

After  several  preliminary  chapters,  the  au- 
thors get  down  to  practical  details  with  top- 
ics such  as  moving  data,  binary  arithmetic 
operations,  multiplication  and  division,  use 
of  the  stack  pointer,  subroutines,  arrays  and 
tables,  conversions,  decimal  arithmetic,  vari- 
ous 10  options,  real  time  clocks  and  inter- 
rupt driven  processes,  and  debugging  tech- 
niques. Most  examples  are  given  in  symbolic 
assembly  form,  with  occasional  listings  of 
assembled  code  using  a  Computer  Automa- 
tion software  development  system. 

This  306  page  hardcover  book  is  well 
worth  its  $21.95  price  and  should  be  in 
every  8080  or  Z-80  user's  library. 


Send  to: 

BITS,  Inc 
70  Main  St 
Peterborough  NH  03458 


Check  payment  method: 
My  check  is  enclosed 

Bill  my  MC  No. 

Bill  my  BAC  No. 


Exp.  date 
Exp.  date 


Total  for  all  books  checked 
Postage,  50  cents  per  book 

for books 

Grand  Total 


$ 
$ 


Name 


Address 

City 

State 

Zip 

Signature 

You  may  photocopy  this  page  if  you  wish  to  leave  your  BYTE  intact.     In  unusual  cases,  processing  may  exceed  30  days 


144 


The  Thinking  Computer:  Mind  Inside 

Matter  by  Bertram  Raphael.  Artificial  intel- 
ligence, or  Al,  is  the  branch  of  computer 
science  concerned  with  making  computers 
"smarter."  It  is  a  growing,  vital  field  that  is, 
unfortunately,  the  subject  of  much  popular 
misunderstanding.  The  Thinking  Computer: 
Mind  Inside  Matter  is  a  lucid  introduction  to 
Al  that  does  much  to  overcome  this  mis- 
understanding. With  a  minimum  of  technical 
jargon,  this  book  discusses  the  capabilities 
of  modern  digital  computers  and  how  they 
are  being  used  in  contemporary  Al  research. 
It  discusses  the  progress  of  Al,  the  goals, 
and  the  variety  of  current  approaches  to 
making  the  computer  more  intelligent. 
S6.95. 


Projects  in  Sight,  Sound,  &  Sensation 

by  Mitchell  Waite.  Dedicated  "to  all  space 
cowboys."  Detailed  theory  and  practice  of 
seven  fascinating  amateur  electronics  proj- 
ects, along  with  a  complete  and  detailed  ap- 
pendix on  how  to  make  PC  boards.  The 
projects  included  in  this  book  are:  The 
Syntheshape,  an  art  generator  that  can  be 
used  to  generate  innumerable  complex  and 
beautiful  patterns  on  the  screen  of  an  oscil- 
loscope. An  electronic  music  box  that  will 
play  over  3000  possible  melodies  when  the 
lid  is  lifted.  A  way  to  control  muscle  tension 
explained  in  chapter  4.  A  muscle-wave  bio- 
feedback monitor  can  be  used  to  achieve 
deep  relaxation.  The  laser-light  show  trans- 
fers light  into  fascinating  patterns  in  a  dark- 
ened room.  Other  projects  include  a  Kirlian 
camera,  a  digital  ESP  machine,  and  neon- 
light  randomizer.  $5.25. 


Mind 
Massagers 
from  BITS 

The  Great  International  Math  On  Keys 


Book,  from  Texas  Instruments.  Do  you 
need  a  numerical  algorithm  for  calculating 
exchange  rates  in  a  hotel  on  a  foreign  trip? 
Or  figuring  those  mysterious  "points"  when 
facing  the  sanctimonious  charisma  of  a 
banker  at  mortgage  time?  This  book  is  a 
compendium  of  simple  explanations  and 
step  by  step  procedures  for  accomplishing 
numerical  solutions  to  numerous  com- 
monly encountered  situations  in  daily  life. 
Each  entry  is  characterized  by  a  statement 
of  the  problem,  including  the  elements  of 
theory  required,  and  the  keystrokes  needed 
to  solve  the  problem  on  an  algebraic  entry 
calculator.  This  is  an  invaluable  sourcebook 
of  information  for  the  person  who  is  in- 
clined to  manipulate  numbers.  $4.95. 


How  to  Solve  Problems  by  Wayne  A 

Wickelgren.  When  confronted  by  a  problem, 
many  of  us  spend  more  time  puzzling  over 
how  to  solve  it  than  in  actually  doing  so.  This 
book  analyzes  and  systematizes  the  basic 
methods  of  solving  mathematical  problems. 
The  methods  are  described  in  terms  of  a 
modern  theory  derived  from  research  in 
computer  simulation  of  thinking.  Examples 
illustrating  these  methods  include  chess 
problems,  logical  puzzles,  and  railroad 
switching  problems  frequently  encountered 
in  science  and  engineering.  Whether  your  in- 
terest in  solving  problems  is  professional, 
recreational,  or  both,  you  will  find  this  a 
helpful  book.  S6.50  softcover. 


CKESS  SKILL 

mmm 

QdtMby   PcturW.Frey 


;  * 


it 

k',    |     i 

IB 


Chess  Skill  in  Man  and  Machine  edited 

by  Peter  W  Frey.  This  is  a  most  fascinating 
book,  concerning  itself  with  the  when,  how, 
and  why  of  computer  chess.  The  when  de- 
scribes past  ACM  computer  chess  tourna- 
ments, with  the  details  of  more  than  a  doz- 
en games.  The  how  consists  of  the  basics  of 
both  human  chess  skill  and  computer  chess 
theory.  It  includes  a  detailed  description  of 
the  best  computer  chess  program  to  date 
(Northwestern  University's  CHESS  4.5),  an 
end  game  program  called  PEASANT,  and  of 
various  search  strategies  and  heuristic  com- 
puter chess  theory  which  should  enable  one 
to  write  his  own  chess  program.  The  book 
ends  with  the  why  concerning  the  contribu- 
tions, now  and  in  the  future,  of  computer 
chess  to  understanding  artificial  intelligence, 
human  intelligence,  and  learning.  The  only 
difficulty  for  the  hobbyist's  computer  chess 
program  is  the  need  for  a  large  computer  for 
the  fast  processing  of  search  strategies  and 
large  core  storage  for  the  program  and  its 
results.  $14.80  hardcover. 


Send  to: 

BITS,  Inc 
70  Main  St 
Peterborough  NH  03458 

Total  for  all  books  checked 
Postage,    50  cents  per  book 

for      books 

Grand  Total 


Check  payment  method: 

My  check  is  enclosed 

Bill  my  MC  No. 

_Bill  my  BAC  No. 


Exp.  date 
Exp.  date 


Name 


$ 

$ 


Address 

City 

State 

Zip 

Signature 

You  may  photocopy  this  page  if  you  wish  to  leave  your  BYTE  intact.      In  unusual  cases*  processing  may  exceed  30  days 


145 


Circle  51  on  inquiry  card. 


Continued  from  page  11 

sets  a  very  high  goal  for  us.  When  your 
latest  program  crashes,  a  poster  like  this 
on  the  wall  could  give  you  the  inspira- 
tion to  hit  the  restart  button  and  try 
again. 

I  find  that  I  can  justify  my  activities 
in  small  computing  a  lot  easier  when  I 
can  point  to  an  illustration  like  this  than 
through  the  idea  of  the  "ultimate  toy." 
One  picture  is  indeed  worth  a  thousand 
BYTES. 

Robert  J  Retelle 
2005  Whittaker  Rd 
Ypsilanti  Ml  49197 

WHY  NOT  8  TRACKS? 

I  am  curious  to  know  why  8  track 
tapes  are  not  used  for  memories  instead 
of  cassettes.  I  would  think  that  by  using 
one  channel  for  a  clock  track  you  could 
have  memory  locations  via  a  clock  track 
counter.  Also  by  moving  from  track  to 
track,  access  time  would  be  saved,  would 
it  not?  Please  elaborate. 

Kurt  Kramer 
8634  Lake  Isle  Dr 
Tampa  FL  33617 

Sounds  like  a  good  idea.  I  once  saw 


a  surplus  automated  cartridge  turret 
mechanism  which  had  been  used  by  a 
radio  station.  This  mechanism,  which 
its  owner  intended  to  refurbish,  would 
be  used  for  an  on  line  storage  system  of 
rather  large  capacity  based  on  the  wide 
tape  cartridges  similar  to  an  8  track 
stereo  cartridge.  Maybe  a  reader  will 
pick  up  on  this  and  try  it  out,  reporting 
the  results  as  an  article. 

RETROSPECTIVE:  BYTE'S 
PORNOGRAPHICPHOTOS  MARCH  ON 

Never  thought  that  BYTE  would  go 
in  for  pornography.  But  without  the 
benefit  of  a  G-slring,  you  show  on 
page  54  of  the  March  1977  issue  a  bare 
soldering  iron.  Soldering  irons  without  G 
can  certainly  corrupt  innocent  com- 
puters. Since  your  local  Sears  or  Radio 
Shack  do  not  generally  bother  to  stock 
properly  grounded  ones,  beginners  should 
be  warned. 

Sholom  Kass 

567  Baden  Av 

San  Francisco  CA  94080 

The  G-string  mentioned  in  Sholom 
Kass's  letter  is  the  ground  wire  of 
a  3  wire  110  V  interface  for  power. 
It  is  standard  industrial  practice  to 
use    such    grounding,    especially    where 


delicate  parts  such  as  microprocessors, 
and  other  LSI  or  CMOS  gates  are  being 
used.  The  static  charge  which  a  normal 
human  being  can  build  up  in  a  dry 
room  with  rug  and  rubber  soled  shoes 
can  drive  a  spark  across  a  considerable 
gap,  and  is  measured  in  many  tens  of 
thousands  of  volts. 

SOME  NEWS  FROM  DEUTSCHLAND 

My  involvement  with  micros  began 
when  one  of  your  associates,  Dan  Fylstra, 
gave  a  talk  at  IFIP/IFAC  in  Paris  last 
summer,  in  which  he  managed  to  men- 
tion the  Motorola  6800,  the  MOS  Tech 
6502,  and  also  gave  an  example  of  a  pro- 
gram in  PL/M.  On  coming  back  to  Darm- 
stadt, I  found  two  groups  of  people  at 
our  facility  who  were  interested,  nearly 
all  professional  computer  engineers.  One 
of  them,  Asbj0rn  Smitt,  had  already 
worked  on  a  6800-based  system  which 
we  use  for  simulating  satellite  telemetry 
data;  another,  Heimuth  Werthmann,  had 
his  own  business  and  had  already  built  a 
6800-based  system.  So  our  choice  as  a 
club  was  somewhat  inevitable.  Asbjflrn 
had  bought  the  EVK  100  and  the 
SWTPC  AC-30  cassette  controller,  and 
we  very  nearly  went  EMI,  but  then  the 
prices  sort  of  doubled,  so  we  went  with 
OSI  instead  after  our  chairman,  Graham 


NEW  8080  and  8085  REFERENCE  GUIDE 


A  TOTALLY  NEW  CONCEPT! 


SAVES  TIME  AND  MONEY! 


MAKES  YOUR  JOB  EASIER! 


A  powerful  new  tool  for  every  serious  8080  user  —  professional  and  novice  alike. 
Priceless  timesaver  for  engineers,  technicians,  and  programmers.  Saves  time  and 
money  in  the  lab,  on  the  production  line,  or  in  the  field. 

Convenient  pocket  size  —  3%  by  7%  inches  —  gives  quick  and  easy  access  to  all  vital 
reference  data.  No  more  searching  here  and  there  for  codes,  instructions,  or  definitions. 
It's  all  there  —  at  your  finger  tips  —  everything  you  need  to  successfully  use  the  8080A 
and  —  Intel's  new  8085  microprocessor. 

Features  cross  listing,  for  rapid  assembly  and  disassembly,  of  MACHINE  CODES  and 

MNEMONICS  •  Concise  description  of  8080  and  8085  OPERATIONS,  SIGNALS, 

PINOUTS,  and  INSTRUCTIONS  •  Convenient  cross  conversion  of  OCTAL, 

HEXIDECIMAL,  DECIMAL,  ASCII,  and  EBCDIC  codes  •  Easy-to-read  tables  of  powers 

of  two,  eight,  and  sixteen  . . .  and  much  more . . . 

Sturdy  •  Handsome  •  Easy-to-use  •  Data  Packed 

Your  timesaver  will  give  many  years  of  professional  service. 

$12.95  each  (plus  postage  &  California  sales  tax)  —  25%  discount  for  4  or  more. 
MoneyBack  Guarantee:  You  must  be  fully  satisfied  or  simply  return  the  guide  within  15  days  for  full  and  prompt  refund. 


URBAN  INSTRUMENTS 


4014  CODY  ROAD  •  DEPARTMENT  C1  • 
SHERMAN  OAKS  •  CALIFORNIA  91403 


master  charge 


BANKAMERICARD 


PLEASE  SEND. 

NAME 

STREET 


.8080  ti  mesa  vers  to: 


CHECK/M.O.  ENCLOSED  D         BANKAMERICARD  □         MASTER  CHARGED 
CARD  NUMBER 


C|TY  GOOD  THRU   4  DIGITS  ABOVE  NAME 


(MASTER  CHARGE) 


STATE 


.ZIP SIGNATURE 


Circle  52  on  inquiry  card. 


146 


Else  (whose  main  interest  is  biological 
monitoring),  had  convinced  everyone  we 
needed  something  which  could  be 
started  off  cheaply.  (In  the  end  Graham 
is  at  the  Rolls-Royce  end  of  the  market, 
with  a  Digital  Group  Z-80.)  I  had  bought 
a  SCAMP,  which  to  my  astonishment 
worked  first  time  despite  some  startup 
trouble  which  we  attributed  to  the 
rather  bulky  socket  for  the  CPU,  and 
which  eventually  I  hope  to  work  up  into 
a  controller  for  the  Selectric  I'm  typing 
this  on.  Our  club  is  now  about  40  strong, 
with  considerable  purchasing  leverage 
since  there  are  believed  to  be  about  30 
people  actively  buying  components  (25 
OSI  superboards,  16  Selectrics,  which 
was  all  I  could  get  in  my  Volvo  the  last 
time  I  went  to  England,  and  if  you  know 
anything  about  the  quaint  European  cus- 
toms, avoid  Belgium),  and  of  course  our 
own  BYTE  archive.  We  are  also  in  contact 
with  John  Barnes,  a  founder  and  mem- 
ber of  the  British  Amateur  Computer 
Constructors'  Association,  and  having 
heard  of  the  success  he  has  had  in  using 
standard  8  track  cassettes  with  short 
endless  loops  and  saturation  recording, 
I  have  ordered  a  few  for  experiment. 
Graham  and  Helmuth  in  the  meantime 
are  working  on  Philips  cassettes. 

Things  would  probably  have  started 
more  slowly  had  it  not  been  for  the 
impact  of  BYTE  and  the  fact  that  Jack 
Davies,  the  guy  running  PACS,  lives  in 
Darmstadt  with  a  perpetual  fount  of 
goodies  which  are  available  for  inspection 
and  (usually)  instant  purchase.  The  only 
complaint  we  have  about  OSI  is  that 
they  have  never  dished  out  the  listing  of 
the  Superbug  monitor;  so  this  has  now 
been  decompiled  using  the  Thomson 
Lister  (running  on  the  first  of  our  club 
machines,  built  by  Bob  Dees  of  ICL), 
and  another  program  running  on  our 
4/72.  (ICL,  not  Amdahl!)  I  guess  our 
next  move  is  to  find  out  if  Tom  Pittman 
has  an  OSI  version  of  Tiny  BASIC  yet. 

I  suppose  the  next  move  would  be 
for  us  to  get  some  sort  of  European  con- 
vention going.  It  would  be  nice  if  I  could 
appeal  through  your  pages  for  any 
hobbyist  clubs  in  Europe  who  would  be 
interested  in  attending  such  a  thing,  or 
indeed  if  anyone  is  prepared  to  offer  a 
site  which  is  fairly  central.  There  have 
been  two  attempts  to  get  Europe-wide 
hobby  clubs  formed,  but  in  both  cases 
the  impulse  has  come  from  the  hobby 
industry  rather  than  the  hobbyists,  who 
tend  to  view  (other  people's)  commercial 
bias  with  suspicion.  If  we  forget  the 
launches  which  are  scheduled  for  this 
year  ESA  can  probably  be  persuaded  to 
host  it  if  we  hear  from  enough  people, 
but  obviously  we  are  equally  curious  if 
anyone  has  a  72  character  graphics  cum 
VDU  interface  for  625  line  TV  receivers, 
or  a  meta-assembler  capable  of  compiling 
code  for  more  than  one  micro,  and  so 
forth.  Incidentally,  why  use  OMEGA 
when  there  are  satellite  systems,  like 
LORAN-c?  [Ralph  Burhans  is  busy  at 
work  on  a  LORAN-c  interface  .  .  .  CH/ 

Good  luck  to  BYTE,  may  it  grow 
ever  heavier,  and  perhaps  sprout  a  Euro- 


$699  builds 
Equinox  100™ 


ki*A^L*ir 


THE  : 

FRONTRUNNER* 

Equinox  100™is  the  8080  CPU/S-100  Bus  computer  kit  that's 
years  in  front  of  Altair*  and  IMSAI  in  design,  function  and  front- 
panel  programming  capability.  EquinoxlOO  is  easier  to  build, 
easier  to  program,  easier  to  expand  in  the  future  and  complete- 
ly debugged  right  now.  After  all,  it's  from  Parasitic  Engineering, 
the  leading  supplier  of  debugging  kits  for  the  Altair*  8800.  Be- 
fore you  invest  in  any  micro-processor  kit,  discover  the  new 
Equinox  100™  At  $699,  it's  clearly  The  Frontrunner.  Write  for 
free  specs  to  Parasitic  Engineering,  P.O.  Box  6314,  Albany, 
CA  94706. 


liTJ  37t1  ii  rid  II  ITiTUfl  IflTi  I  ■  **.\r.  Li  HTiril  3iTU 


"A  trademark  of  MITS  Inc. 


Circle  53  on  inquiry  card. 


147 


SUPER  DENSE 
GRAPHICS 


320  Horizontal  by  200  Vertical 


V-»"**C0S<2tX/b) 

•■.•I,    b-42.86 


IF  YOUR   COMPUTER  w       'O' 

CAN'T   SHILE   (OR 
PLOT)   IT  PROBABLY  " 

NAB  NERLIH   DEFICIENCY   V 
ANEHIA.  \  ^j—^y 


<E0UATI0H   PLOTTED   HITH   BASIC) 


The  MERLIN  Super  Dense  add-on  kit 
provides  maximum  resolution  at  a 
minimum  cost.  In  fact,  MERLIN  with 
Super  Dense  has  more  capabilities  than 
any  other  S-100  bus  video  interface  at 
any  price! 

Once  you've  seen  'Super  Dense' 
graphic  resolution  you'll  know  there  is 
nothing  to  compare  it  to  .  .  .  short  of 
spending  over  $600  .  .  .  and  even  then 
you'll  not  have  all  of  the  capabilities  of 
MERLIN  with  'Super  Dense'. 

Super  Dense  provides  true  bit- 
mapping.  Each  and  every  point  on  the 
screen  is  controlled  directly  by  a  bit  in 
memory.  (Requires  8K  of  system 
memory.) 

ROM  character-graphics  looked  good 
for  a  while;  then  came  MERLIN'S  160  by 
100  bit  mapping  graphics;  and  now  .  .  . 

320  by  200  bit-mapping  graphics! ! ! 
If  you're  looking  for  a  graphic  display, 
MERLIN  with  Super  Dense  is  the  best 
there  is.  And  if  you  hadn't  considered 
graphics  or  thought  it  was  out  of  your 
price  range,  consider  what  you  could 
do  with  320  H  by  200V  graphics  and  for 
only  $39  extra. 

The  Super  Dense  add-on  kit  to  the 
popular  MERLIN  video  interface  Is  now 
available  with  off-the-shelf  delivery. 

M320-K,  Super  Dense  Kit $39 

M320-A,  Super  Dense  Assm.  .  .$54 
See  MERLIN  ad  on  previous  page. 

For  information  fast,  write  direct,  or 
see  'Super  Dense'  at  your  nearest 
computer  store. 

MC  and  BAC  accepted. 


MiniTerm  Associates,  inc. 


01730  1617)  0m  l.'lll) 


Circle  38  on  inquiry  card. 


pean     edition     with     the    addresses    of 
outfits  here. 

Ian  McNicol 

Waldstrasse  18 

6101  Lichtenberg  GERMANY 

IMPRESSED,  BUT 

I  was  impressed  with  "The  Built-in 
Logic  Tester,"  Kurt  Christner's  article  in 
the  January  issue,  page  82.  He  had  an 
idea  for  a  super  logic  probe,  considering 
the  cost. 

But  what  about  those  amateurs 
among  us  who  have  need  of  a  CMOS 
probe  rather  than  TTL?  I  would  like  to 
challenge  Kurt  to  come  up  with  an 
equally  fine  project  for  us  nontechnically 
inclined  who  could  really  use  a  good 
quality,  low  cost  CMOS  probe. 

By  the  way,  I'm  brand  new  with  the 
January  issue  and  I  like  what  I  see.  It's 
a  great  magazine. 

Tom  Kryst 

212  Princeton 

Alpena  Ml  49707 

COMPUTER  POSSIBILITIES  IN 
SECONDARY  SCHOOLS 

Attached  is  something  that  appeared 
recently  in  Science  News  (see  page  168, 
March  12  1977  issue)  which  is  a  semi- 
popular  weekly  publication.  What  I 
found  particularly  interesting  was  the 
section  concerning  this  year's  winners 
of  the  national  Science  Talent  Search. 
Of  the  ten  winners,  notice  that  four 
of  them  used  computers  in  some  capac- 
ity. Thinking  back  on  my  science  fair 
entries  of  20  years  ago,  such  a  thing 
borders  on  the  inconceivable .  Until 
very  recently  computers  and  computer 
time  were  so  expensive  that  the  eco- 
nomics of  the  situation  precluded  any 
but  the  work  which  had  a  very  high  pro- 
bability of  research  or  financial  return. 
Therefore  such  investigations  as  these 
by  high  school  students  were  impossible 
to  justify  on  the  basis  of  what  they 
might  produce. 

Perhaps  one  of  the  things  that  those 
of  us  involved  with  the  microcomputer 
and  personal  computing  revolution  tend 
to  forget  is  that  to  most  of  the  academic 
and  scientific  world  at  large,  computers 
are  simply  tools  to  an  end  in  whatever 
discipline  is  being  pursued.  Just  think 
of  what  the  possible  benefits  are  should 
virtually  limitless,  although  perhapsslow, 
computing  time  become  available  to  any 
interested  individual,  such  as  these  high 
school  students.  A  local  school  could 
put  together  quite  a  respectable  system 
of  moderate  capability  for,  say,  10  K 
bucks,  and  then  allow  appropriate  stu- 
dents to  pursue  their  interests  generally 
unhampered  by  the  restraints  of  financial 
return.  The  leap  ahead  in  science  educa- 
tion (and  possibly  science  related  areas 
of  liberal  arts)  is  truly  mind  boggling! 

Robert  R  Wier 

POB9209 

College  Station  TX  77840 

148 


I  HATE  BASIC,  A  POISON 
KEY  LETTER 

I  wish  to  express  my  appreciation  for 
your  publication.  For  me,  it  has  helped 
open  the  door  to  a  new  and  fascinating 
world. 

I  wish  to  pose  a  general  question.  Why 
is  it  that,  with  all  too  few  exceptions, 
the  thrust  of  what  might  be  called 
"microcomputer  applications  for  the 
nonprofessional"  seems  to  be  lost  in 
an  endless  loop  called  "games  written 
in  BASIC"?  And  as  a  corollary,  one 
might  well  ask  the  question,  "Of  what 
redeeming  social  value  is  the  latest 
listing  of  Star  Trek?". 

The  Pong-Trek-Toe  mentality  seems 
to  be  ubiquitous;  lift  any  magazine  cover 
and  underneath,  in  the  table  of  contents, 
will  be  found  an  article  dealing  with 
games  written  in  BASIC. 

This  is  most  assuredly  not  an  attack 
upon  BYTE  magazine.  It  most  assuredly 
is  an  attack  upon  the  paucity  of  imagina- 
tion manifested  by  microcomputer 
owners. 

For  every  ten  serious  articles  appear- 
ing in  BYTE  which  are  devoted  to  the 
embarrassment  of  riches  in  hardware 
being  placed  within  reach,  there  is  per- 
haps one  serious  and  informative  article 
devoted  to  software  concepts.  The  term 
"concepts"  should  be  emphasized;  an 
assembly  language  listing  for  a  specific 
microprocessor  is  not  the  expression  of  a 
concept. 

The  lack  of  interest  in  software  con- 
cepts coupled  with  the  overweening 
interest  in  amusing  trivia  does  not  speak 
well  for  the  present  state  of  the  amateur 
group,  from  which  emanates  a  great  talk 
about  "being  in  the  vanguard  of  a  revolu- 
tion." Most  of  this  talk  is  vainglorious 
nonsense. 

At  the  present  time,  the  only  groups 
doing  things  worthy  of  the  adjective 
"revolutionary"  are  the  microprocessor 
manufacturers  and  the  microcomputer 
system  designers.  For  the  purchaser  of 
such  riches  to  sit  around  playing  Star 
Trek  in  BASIC  borders  on  the  perverse; 
to  ascribe  to  such  apathetic  behavior 
the  word  "revolutionary"  is  a  caricature. 

It  seems  that  the  amateur  group  has 
been  handed  BASIC  on  a  silver  platter 
and  is  content  to  view  it  as  the  program- 
ming language.  This  is  unimaginative  at 
best. 

The  reason  for  being  of  microcom- 
puter BASIC  is  simply  to  provide  a 
workable  language  so  that  people  will 
buy  microcomputers.  Insofar  as  I  know, 
no  one  has  ever  claimed  that  BASIC 
uses  the  resources  of  a  system  organized 
in  8  bit  words  to  its  maximum  benefit; 
BASIC  has  appeared  on  the  microcom- 
puter scene  simply  by  default.  It  works 
and  it  is  easy  to  learn  and  use.  It  sells 
microcomputers. 

If  Star  Trek  is  the  desired  goal  of  our 
collective  amateur  ambition,  then  BASIC 
is  sufficient;  we  need  look  no  further. 

However,  if  we  wish  to  exploit  the 
limited  resources  of  the  microcomputei 
in  specific  ways,  looking  toward  specific 


nontrivial  goals,  then  new  programming 
languages  should  be  written.  There 
surely  exists  a  diversity  of  ideas  as  to 
what  constitutes  good  microcomputer 
programming  languages.  Attemptsshould 
be  made  to  implement  these  ideas.  We 
cannot  sit  back  and  wait  for  commercial 
organizations  to  do  all  the  development. 
Most  of  all,  we  need  software  con- 
cepts. Memory  management  concepts. 
Data  manipulation  concepts.  Algorithms 
for  mathematical  functions. 

What  is  a  heap?  How  does  it  work? 
What  does  its  presence  imply  about  the 
philosophy  of  a  language  which  uses  it? 
If,  for  every  page  devoted  to  Star 
Trek  listings  and  other  compatible 
endeavors,  BYTE  published  a  page 
devoted  to  software  concepts,  then  we 
would  all  soon  be  the  richer. 

However,  BYTE  magazine  cannot 
prosper  by  serving  up  beefsteak  if  the 
readership  is  clamoring  for  canned  pork 
and  beans. 

From  time  to  time,  in  various  maga- 
zines such  as  BYTE,  there  appear  wild- 
eyed  letters  to  the  editor  accusing  the 
programming  profession  of  clannishness, 
a  lack  of  willingness  to  share  ideas, 
secretiveness  and  a  general  depravity. 
Such  letters  always  imply  that  we, 
the  amateurs,  are  pure  of  heart  and  clean 
of  hand.  Is  this  true,  or  is  it  rather  that 
we  are  so  numbed  by  sitting  around 
playing  with  BASIC  (implemented  by 
professional  programmers)  that  we  really 
just  don't  have  much  of  any  deep  worth 
to  share  with  each  other,  and  seek  to 
hide  the  fact  by  freely  sharing  what  little 
we  do  have.  Perhaps  purity  of  heart  and 
cleanliness  of  hand  grow  as  the  inverse  of 
the  amount  of  real  knowledge  which  is 
available  for  sharing. 

Why  the  great  emphasis  upon  BASIC? 
One  would  think  that  most  microcom- 
puters are  hard  wired  for  it.  Have  we  no 
alternative  ideas  to  explore?  Is  the 
fixation  upon  BASIC  a  result  of  its 
inherent  superiority  as  a  programming 
language  for  microcomputers,  or  is 
it  due  to  a  lack  of  knowledge  concerning 
possible  alternatives?  The  set  of  "pos- 
sible alternatives"  is  not  the  universe  of 
FORTRAN.  We  do  not  need  FOR- 
TRAN. We  do  not  need  miniaturized 
versions  of  languages  originally  designed 
for  implementation  upon  much  more 
sophisticated  hardware.  We  need  lan- 
guages based  upon  the  material  at  hand: 
8  bit  word  length  microprocessors  with 
relatively  primitive  instruction  sets. 

While  the  Micro-Soft  venture  into 
APL  represents  a  noble  undertaking,  it 
nevertheless  embodies  the  faulty  reason- 
ing that,  "If  a  language  implemented  on 
big  computers  is  a  good  thing,  then  its 
implementation  on  a  microcomputer 
must  be  equally  good."  In  a  64  K  sys- 
tem, what  percentage  of  memory  is 
required  to  support  APL?  What  is  left 
over  for  the  user? 

The  microcomputer  needs  software 
which  is  conceived  of  in  terms  of  the 
microprocessor.  We,  the  amateurs,  need 
to  get  up  off  our  hind  legs  and  do  some 
thinking  about  language  concepts. 


In  the  future,  is  the  personal  micro- 
computer to  be  regarded  as  a  tool  For 
learning,  or  is  it  to  be  a  toy  in  front  of 
which  the  owner  sits,  glassy  eyed, 
playing  the  latest  game  written  (by 
someone  else)  in  BASIC? 

JackCluff 

34-57  73rd  St 

Jackson  Heights  NY  11372 

What  Are  Riches  For,  If  Not  to 
Enjoy  and  Prosper  By? 

Regarding  the  BYTE  magazine  con- 
tent, I  seem  to  hear  comments  from  all 
directions  concerning  too  much  of  this, 
too  much  of  that,  not  enough  of  this. 
Some  say  too  much  hardware,  some  say 
too  much  software  -  so  the  conclusion 
can  only  be  that  the  balance  is  a  good 
approximation      of     what     is     needed. 

No  one  ever  seriously  should  think 
of  FORTRAN  or  BASIC  as  the  "be-all 
and  end-all  of  high  level  languages. " 
We  do  have  demonstrated  interest  and 
familiarity  on  the  part  of  users  with 
these  languages  due  to  their  widespread 
past  usage.  But,  if  you  want  to  write  an 
interpreter  or  compiler,  starting  with 
an  existing  language  is  a  shortcut  (quite 
independent  of  marketing  considera- 
tions) that  bypasses  the  need  to  generate 
an  unambiguous  grammar  and  precise 
semantics  of  a  new  language  from 
scratch. 

Of  course,  the  ultimate  is  to  use  an 
already  established  language  for  which 
you  have  an  interpreter  or  compiler. 
The  fact  that  I  can  use  my  BASIC  for 
an  occasional  recreation  or  game  by  no 
means  prohibits  my  use  of  that  lan- 
guage for  such  "unnatural"  things  as 
systems  programming.  I  know  of  at 
least  one  8080  assembler  written  in 
BASIC,  running  on  an  A I  lair  8800 
floppy    disk   system    at  a  local  college. 

Another  point  worth  closing  on: 
Most  professionals  arc  really  amateurs 
who  have  cleverly  arranged  things  so  that 
they  get  paid  for  what  they  like  to  do. 
The  spirit  of  involvement  with  the 
activity,  doing  it  "right"  by  some 
standard,  is  what  counts  .  .  .  CH 

1001  TALES  OF 
ARABIAN  BYTES? 

Thank  you  lor  a  very  interesting 
magazine.  I  am  a  recent  subscriber  having 
just  received  my  first  two  issues,  January 
and  February  1977,  forwarded  to  me 
from  Texas.  I  am  unwilling  to  wait 
for  boat  mail.  When  subscriptions  are 
available  by  air  mail  to  Saudi  Arabia  I 
will  enter  a  subscription  immediately 
regardless  of  the  mail  rates. 

I  have  a  small  system  running  and  am 
interested  in  all  articles  about  Altair  bus 
oriented  products  and  8080  software. 

John  R  Fogle  Jr 

Box  403,  c/o  Aramco 

Abqaiq  SAUDI  ARABIA 

See  the  subscription  card  for  foreign 
air  mail  rates.  ■ 


149 


Microcomputers 

Microprocessors 

Made  Easy! 


MICROCOMPUTERS/ 
MICROPROCESSORS: 
HARDWARE,  SOFTWARE, 
AND  APPLICATIONS 

John  L.  Hilburn  and  Paul  M.  Julich  — 

both  of  Louisiana  State  University 

Ideal  reference  for  anyone  involved 
with  the  design,  use,  or  maintenance 
of  systems  using  microcomputers, 
including  those  who  have  not  had  a 
formal  course  in  digital  logic. 

Contents:  Introduction.  Digital  Logic. 
Number  Systems  and  Codes.  Micro- 
computer Architecture.  Software.  In- 
terfacing and  Peripheral  Devices. 
Microprocessors  and  Microcomput- 
er Systems.  Design  Methodology  and 
Applications.  Appendices.  Index. 

1976  368  pp.  Cloth  $16.50 

MICROPROCESSOR 

SYSTEMS  DESIGN 

Edwin  E.  Klingman  —  Cybernetic 

Micro  Systems,  Palo  Alto,  California 

This  landmark  book  in  microproces- 
sor systems  design  covers  the  spec- 
trum from  gate-level  hardware  all 
the  way  to  language  translation  and 
interpretation. 

Contents:  Microprocessor  Systems 
Design  —  An  Overview.  Information 
Devices.  Information  Storage  De- 
vices. Coding  and  MSI  Building 
Blocks.  A  Central  Processor  Unit 
Instruction  Set.  An  LSI  Central  Pro- 
cessor Unit.  The  Memory  Subsys- 
tem. The  I/O  Subsystem.  Languages 
and  Language  Translation.  Address- 
ing Structures.  I/O  Structures  and 
Techniques.  Interrupt  Structures.  Di- 
rect Memory  Access  Structures  and 
Techniques.  Microprocessor  Archi- 
tectural Themes.  Appendices.  Bib- 
liography. Index. 

1977  480  pp.  Cloth  $17.50 

For  further  information,  or  to  order 
a  copy  of  either  of  these  vital  texts, 
please  write  to:  Ben  M.  Colt,  Pren- 
tice-Hall, Inc.,  Englewood  Cliffs,  New 
Jersey  07632. 

Prices  subject  to  change  without  notice. 

Prentice-Hall 


Technical 
Fcpum 


APL 
Character  Sets 

The  letter  from  Roderick  Montgomery 
concerning  the  availability  of  a  special  char- 
acter set  for  APL  started  some  thoughts  on 
the  subject. 

Lacking  the  availability  of  a  PROM  type 
character  generator,  there  are  other  ways  to 
do  the  job.  The  methods  that  come  to  mind 
are  building  up  a  generator  out  of  standard 
bipolar  ROMs,  or  using  ordinary  program- 
mable memory  parts  which  would  be  loaded 
by  the  computer  at  APL  initialization  time. 
The  latter  idea  is  especially  appealing  to  me, 
since  it  would  allow  special  characters  to  be 
carried  into  the  machine  as  part  of  the 
program.  Although  this  would  require  some 
programming,  it  would  not  use  up  main 
memory  space  because  it  would  be  read 
directly  into  the  character  generator. 

Charles  J  Billwiller 

231 3B  Sierra  Madre  Ct 

Rancho  Cordova  CA  95670 

The  use  of  reprogrammable  character 
generators  for  television  displays  is  starting 
to  occur  in  products.  One  of  the  first 
products  seen  in  advertising  with  this  feature 
is  the  ECD  Corporation's  computer  product, 
which  has  just  such  a  user  memory  definable 
character  generator.  This  technique  has  also 
been  used  by  several  video  games  manufac- 
turers to  achieve  high  resolution  regions  for 
graphics  on  a  TV  raster.' 


Is  This  a  Valid  Hot  Board 
Placement  Procedure? 

A  reader  has  suggested  the  following 
procedure  to  allow  one  to  plug  in  and 
remove  a  circuit  board  while  system  power  is 
maintained.  We'd  appreciate  comments  from 
some  of  the  hardware  oriented  readers  in  the 
audience  about  the  safety  of  this  algorithm: 

Removal  of  board: 

0.  Halt  processor  to  avoid  software 
carnage. 

1.  Connect  jumpers  from  main  supplies 
to  board  terminals  to  retain  power 
during  removal. 

2.  Remove  board  with  care  about  align- 
ment. 

3.  Remove  jumpers  to  power  down  the 
board. 

Insertion  of  a  board: 

0.  Power  up  the  board  with  jumpers  from 
main  supplies. 

1.  Insert  board  carefully  to  ensure  proper 
alignment  of  edge  connector. 

2.  Remove  jumpers. 

3.  Restart  processor. 

The  use  of  a  parallel  supply  connection  to 
the  board  during  removal  and  insertion 
operations  guarantees  that  the  integrated 
circuits  will  be  powered  up  before  any  low 
impedance  driving  voltages  reach  the  inputs 
of  onboard  gates.  A  gate  can  be  blown  if 
voltages  are  applied  to  its  inputs  prior  to  the 
supply  voltages.  The  common  ground  of  the 
supply  also  eliminates  static  voltage  dif- 
ferences between  the  two  boards." 


SWTP  6800  0WNERS-WE  HAVE  A  CASSETTE  I/O  FOR  YOU! 

The  CIS-301-  allows  you  to  record  and  playback  data  using  an 
ordinary  cassette  recorder  at  30,  60  or  120  Bytes/Sec!  No  Hassle! 
Your  terminal  connects  to  the  CIS-30+  which  plugs  into  either  the 
Control  (MP-C)  or  Serial  (MP-S)  Interface  of  your  SWTP  6800 
Computer.  The  CIS-30+  uses  the  self  clocking  'Kansas  City'/Biphase 
Standard.  The  CIS-30+  is  the  FASTEST,  MOST  RELIABLE  CAS- 
SETTE I/O  you  can  buy  for  your  SWTP  6800  Computer. 

PerCom  has  a  Cassette  I/O  for  your  computer! 
Call  or  Write  for  complete  specifications 


PEFQOM 


PerCom  Data  Co. 

P.O.  Box  40598     •     Garland.  Texas  75042     •     (214)  276-1968 

PerCom  —  'peripherals  for  personal  computing' 


Kit  -  $69.95* 

Assembled  -  $89.95* 

(manual  included) 

*  plus  5%  f/shipping 


TEXAS  RESIOENTS  ADD  5%  SALES  TAX 


150 


6ook  Reviews 


Scelbi's  "6800"  Software  Gourmet  Guide  & 
Cook  Book,  by  Robert  Fine/ley,  Scelbi  Com- 
puter Consulting  Inc,  Mil  ford  CT,  1976, 
514  by  8'A,  226  pages.  Softbound,  $9,95 
postpaid. 

I  suppose  everyone  who  writes  assembly 
language  programs  which  eventually  work 
becomes  convinced  he  or  she  is  the  World's 
Greatest  Programmer.  At  least  I  do.  Luckily, 
there  are  books  like  Scelbi's  "6800"  Soft- 
ware Gourmet  Guide  &  Cook  Book  to 
remind  us  how  big  the  world  really  is. 
Author  Robert  Findley  and  associates  at 
Scelbi  have  collected  here  a  number  of 
programming  tricks  which  will  interest 
almost  any  6800  user. 

Following  a  description  of  the  6800 
instruction  set  and  some  general  techniques, 
the  author  discusses  conversion,  floating 
point  and  decimal  arithmetic,  input  and 
output  operations,  search  and  sort  routines. 
Want  an  edit  program?  Many  of  the  pieces 
are  there:  memory  clearing,  transfer  of  a 
section  of  memory,  ideas  for  search  routines. 
Need  to  process  interrupts?  The  10  chapter 
has  a  discussion  of  interrupt  processing 
which  will  be  useful  to  anyone  using  the 
Motorola  MIKBUG  operating  system  read 
only  memory.  A  chapter  on  conversion 
routines    contains    software    for    ASCII    to 


Scelbi 

«680©w 
Software 

|§ourmet  guide  | 

>Cook 
Qook 


Circle  55  on  inquiry  card. 


MULLEN  COMPUTER  RDAPrV; 


BOX  6214,  HAYWARD,  CA  94545 


3 

I 

m 


m 
» 

X 
m 

> 
CA 


CAVE 

:>i,iti> 

RELAT/OPIO  ' 


s 


ISOLATOR 
CONTROL 

$H7  * 


8  fast  reed  relays  respond  to  an  8  bit  word:  Feed 
the  relay  associated  with  its  bit  a  "  1 "  and  it  closes,  give  it 
a  "0"  and  it  opens.  Also,  8  opto-isolators  accept  an  8  bit 
word  from  the  outside  world  and  send  it  to  your  com- 
puter for  handshaking    or  further  control  purposes. 

Especially  suited  for  model  railroad,  burglar  alarm, 
audio  switching,  ham  radio,  music  synthesizer,  and  auto- 
mated display  applications,  this  board  goes  wherever 
you  need  a  general  purpose  1/0  switching  gizmo. 


EXTENDER  2 

BOARD      2 

W/ LOGIC   Z 

PROBE$35  < 


O 


3 
8 

4L-.  Boards  are  kit  form  only.  Cal  res  add  tax.  ^ 

V*4TIBLE  •AVAILABLE  BY  M* 


Whether  for  troubleshooting  or  analysis  at  some  point 
you'll  need  an  extender  board.  Ours  offers  a  built-in  logic 
probe,  special  edge  connector  that  allows  clip  lead  probing, 
jumper  links  in  all  supply  lines,  a  non-skid  probe.  .  .  plus 
good  instructions  and  a  realistic  price. 


enmptek.   Boards  DO  Something 


m 


It  ri.i  i  1 1 
1  i  i  i  i  i  i 


CL2400 

Real  Time  Clock 


S98 — Kit 


$135— Assembled 


If  your  system  needs  to  know  what  time  it  is,  our  CL2400  is 
the  board  for  you.  The  present  time  in  hours,  minutes,  and 
seconds  is  always  available  for  input,  and  is  continuously 
updated  by  the  highly  accurate  60  Hz  power  line  frequency. 
Need  periodic  interrupts?  The  CL2400  can  do  that,  too,  at  any 
of  6  rates.  Reference  manual  with  BASIC  and  assembly 
language  software  examples  included. 


PC3200 

Power  Control  System 


=«./ 


PC3232  $299— Kit  $360— Assm. 

PC3216  $189— Kit  $240— Assm. 

PC3202  $39.50—  Kit         $52— Assm. 


If  your  system  needs  on/off  control  of  lights,  motors, 
appliances,  etc.,  our  PC3200  System  components  are  for 
you.  Control  boards  allow  one  I/O  port  to  control  32  (PC3232) 
or  16  (PC3216)  external  Power  Control  Units,  such  as  the 
PC3202  which  controls  120  VAC  loads  to  400  Watts.  Optically 
isolated,  low  voltage,  current-limited  control  lines  are 
standard  in  this  growing  product  line. 


'Real  World  Electronics' 


P.O.  Box  516 

La  Canada,  CA  91011 

(213)  790-7957 


151 


Circle  56  on  inquiry  card. 


Circle  57  on  inquiry  card. 


SOLD  OUT! 


That's  right,  if  everybody  who  read  this  ad  for 
our  BASIC  SOFTWARE  VOLUME  1  album 
would  order  one,  we'd  be  sold  out!  Includes 
lots  'n'  lots  of  your  favorite  Basic  programs 
such  as  LUNAR  LANDER  and  BLASTOFF!, 
plus  new  ones  like  MAILING  LIST,  FOURIER 
FIT  and  AMPLE  ANNIE.  Plays  through  your 
Tarbell,  Kansas  City  or  Altair  cassette  inter- 
face (we  coded  all  three  ways).  Or  make 
cassette  copies.  Only  6  bucks.  Don't  be  a 
dummy,  order  today!  Satisfaction  guaran- 
teed or  money  back. 

(fcgt0:     SOFTWARE  RECORDSl 

W^S  po  BOX  8401-B 

UNIVERSAL  CITY,  CA  91508 

(CALIFORNIA  RESIDENTS:  PLEASE  ADD  6%  SALES  TAX) 


PLEASE  SEND  ME  N.J.  RESIDENTS  ADD  5%  TAX 

□  KD11F  □  1MSAI  KIT  □  POLY  88  KIT 


NAME. 


STREET. 
CITY 


STATE  . 


.  ZIP_ 


I  ENCLOSE    □  CHECK 

□  BANKAMERICARD  #_ 

□  MASTER  CHARGE  #_ 
INTERBANK*. 


□  M.O.    AMOUNT. 


EXP.  DATE. 
EXP.  DATE. 


SIGNATURE  . 


BE  SURE  TO  INCLUDE  $8.00  FOR  SHIPPING  &  HANDLING 

Mini  Computer  Suppliers  Inc. 

25  Chatham  Road  •  Summit,  N.J.  07901 

Dept.  B    (201)277-6100 


Baudot,  as  well  as  the  more  usual  BCD  to 
and  from  binary. 

For  me,  the  best  was  chapter  5,  "Floating 
Point  Routines."  Although  (as  the  author 
notes)  there  are  places  where  the  code  could 
be  shortened,  it  is  not  that  bad:  a  complete 
add,  subtract,  multiply  and  divide  package 
(with  conversions  to  ASCII,  and  from  ASCII 
to  floating  point)  in  about  1.5  K  bytes  of 
relocatable  code.  The  entire  package  is 
assembled  (the  only  assembly  in  the  book) 
with  a  hexadecimal  listing  in  an  appendix. 

One  reason  the  code  is  so  short  is  the 
extensive  use  made  of  the  index  register.  The 
stack,  on  the  other  hand,  is  not  used  at  all 
(except  for  the  automatic  usage  implied  by 
each  subroutine  linkage).  Since  6800  in- 
dexed addressing  is  relatively  slow,  do  not 
expect  the  floating  point  package  to  be  fast. 
Yet,  it's  not  bad:  Floating  point  multiplica- 
tion, for  example,  takes  a  little  more  than 
800  cycles,  not  quite  2  ms  on  a  SWTPC 
6800  system. 

One  curious  feature  of  the  4  byte  floating 
point  word  format  used  here  is  that  the 
words  are  stored  upside  down,  that  is,  if  the 
least  significant  byte  of  the  mantissa  is 
stored  at  word  N,  then  the  rest  is  stored  at 
N+1  and  N+2  (with  the  sign  being  the  most 
significant  bit  of  byte  N+2).  The  two's 
complement  power  of  two  exponent  is 
stored  at  N+3.  This  is  the  wrong  order  for 
the  6800  for  the  following  reason:  One 
(tricky)  way  to  increment  a  2  byte  word  is 
to  transfer  it  to  the  index  register  and 
increment  that.  The  author  knows  this  trick 
(as  shown  on  pages  3  to  5),  but  apparently 
does  not  know  that  the  index  register  load 
instruction  LDX  transfers  the  16  bit  con- 
tents at  memory  location  M  so  that  the  most 
significant  half  of  the  index  register  contains 
the  contents  of  M,  and  the  least  significant 
half  contains  what's  in  M+1.  Thus,  the  least 
significant  byte  needs  to  have  a  greater 
address.  The  division  program  on  page  5  to 
19,  for  instance,  might  be  shortened  and 
speeded  up  by  using  this  trick;  to  do  so, 
however,  would  require  storing  the  mantissa 
bytes  in  the  opposite  order,  and  rewriting 
the  program. 

The  book  will  be  of  most  use  to  program- 
mers who  employ  an  assembler  program, 
since  most  of  the  ideas  are  presented  in 
symbolic  source  language  form.  (The  major 
exception  is  the  floating  point  package.)  The 
book  is  well  written  and,  considering  the 
diversity  of  topics,  well  organized.  As  a 
source  of  ideas,  it  is  inexpensive  at  $10." 

Jack  Bryant 

Mathematics  Dept 

Texas  A  &  M  University 

College  Station  TX  77843 


Circle  58  on  inquiry  card. 


152 


Circle  59  on  inquiry  card. 


Note.  .  .  .  Scelbi  also  publishes  an  "8080" 
Software    Gourmet    Guide   &   Cook    Book 


dr.  dobbs  journal  of 


$1.5© 


COMPUTER 


>alisthenics 


b  Or 


fhodontia 


Running    Light    Without   Overbyte 


f.  JOURNAL   (OR   USERS  OF  HOME 


i   YOU    PIjv 


With  1: 


H(180  TECO  inJ  i  l-'lojlmf!  Pmr.i  SpecifiCUbrfl    Willum  f 

"S0<  SOFTWARE 

FLOATING  point  ROUTINES  FOR  THE  aio;    r 

Mentor  for  the  6502    Jitk  Brjdiliiw 

Unit  Laridn  for  Ihc  6502  (ASKmblcHcw]  Gimt) 

Mffl)  "APPLICaTIOSS  SOFTWARE"       ftrawl 

Cimn  in  Pinmin'i  MOD   tiny  RASIC    Till   Ktlli 
Low-Gtn  ftsoo  SytKni  5oftw*«  S  c™«    Tedium. 
Shooting  Start  (or  Uiierwyk't  6800  Mian  BASIC     \). 

BBSS  rf   /7.V£5 

MINOL:     Tiny  Trek    -   More  DCOJll  &  A  Corrcciiun 
MINO!.  Errata  &  Priise     Erik   T    Mlielltt  .  Phillip  I- 

COMPUTED  MUSIC  BIBLIOGRAPHY  John  Sndi,  PCC  R. 

SMRT  Will  Hun     Uroy  Finkel 

Ijiu  Fid.i'i  Sttpnnw  I"  the  Editor's  Now  io  ihc  SCCS 


AND  - 


Dr  Dobb's  Journal  of  Computer 
Calisthenics  and  Orthodontia.  Published  by 
People's  Computer  Company,  Box  310, 
Menlo  Park  CA  94025.  Sinq/e  issue,  $1.50; 
one  year  (1 0  issues),  $10. 

Published  by  the  people  who  brought  you 
the  Computer  Faire,  this  toothsome  periodi- 
cal serves  up  an  amalgam  of  filling  software 
listings  and  highly  spiced  commentary  to  its 
monthly  readership.  Dr  Dobb's  Journal 
(Dr  Dobb  is  disguised  as  editor  Jim  Warren  ) 
serves  as  a  clearinghouse  for  new  software 
information  and  the  publication  of  such 
royalty-free  programs  as  BASIC  interpreters 
for  use  by  readers.  Because  it  is  a  nonprofit 
journal,  DDJ  accepts  no  advertising  but  does 
print  new  product  information  as  a  service 
to  readers.  Editor  Warren  has  attempted  to 
bridge  the  gap  between  computer  profession- 
als and  amateurs,  and  does  not  eschew  the 
occasional  biting  remark  in  doing  so.  In 
Robert  Benchley's  immortal  phrase,  the 
tooth,  the  whole  tooth  and  nothing  but  the 
tooth  about  Dr  Dobb's  Journal  of  Computer 
Calisthenics  and  Orthodontia  is  that  it  can 
help  make  your  computer  an  indentured  ser- 
vant. That  about  caps  off  this  review  .  .  .CM 


Fundamentals  and  Applications  of  Digital 
Logic  Circuits  by  Sol  Libes,  Hayden  Book 
Co,  Roche/ le  Park  NJ,  1975,  184  pages. 
Paperback,  $6.95. 

If   anyone    were    to    ask    me    to    pick    a 
particular    book    from    my    computer   book 


IBM  SELECTRIC 

TYPEWRITER 

INPUT  OUTPUT 

CONVERSION  KIT 


Easy  to  install  on  any 
IBM  Selectric  I  and  II, 
providing  quality  hard 
copy  output  for  all 
microprocessor  devices. 

PRICE  ....  $395 

GDITYPER  SYSTEMS  CORPORATION 

A  SUBSIDIARY  OF  TYCOM  CORPORATION 
26  Just  Road,  Fairfield,  New  Jersey     07006     (201)227^1141 


M6800  ADVANCED 
SYSTEMS  SOFTWARE 


RT/68® 


RT/68II,  is  mask-programmed  on  a  6830  ROM  that 
replaces  the  Mikbug*  ROM  in  your  SWTPC  6800, 
Motorola  Evaluation  Module,  etc.  It  is  a  powerful  real 
time,  multiprogramming  operating  system  with  many 
versatile  system  functions.  RT/68®  can  support  up  to  16 
concurrent  programs  at  8  priority  levels. 

MICROWARE  has  improved  the  Mikbug*  functions, 
added  four  more  (Dump,  Exec,  Sys,  Bkpt)  and  made  tape 
load  and  punch  program-usable.  RT/68®  is  designed  so 
programs  that  use  Mikbug*  I/O  don't  require  changes. 

•  POWERFUL  REAL  TIME  EXECUTIVE 

•  100%  SOFTWARE  AND  HARDWARE  COMPATIBLE 

•  IMPROVED  CONSOLE  MONITOR 

•  EXPANDED  PROGRAM  DEBUGGING  FEATURES 

•  SUPPORTS  AUDIO  CASSETTE  I/O 

•  COMPREHENSIVE    MANUAL   INCLUDES  SOURCE 
LISTING 

•  IMMEDIATE  DELIVERY 

ORDER  RT68MR    $55.00  ppd. 

THE  MICROWARE  CORPORATION 
RO.  BOX  954  Des  Moines, Iowa  50304 

Write   or   use    reader   service   card    for   free   brochure. 
Phone  Orders  (515)  279-9856 

BankAmericard  and  Mastercharge  give  all  info  on  card. 
Mikbug*  is  a  trademark  of  Motorola,  Inc. 


153 


Circle  60  on  inquiry  card. 


Circle  61  on  inquiry  card. 


Your  Mail  Order  Computer  Shop... 

IMSAI8080kitw/rr722s/o?s(limitedquantity)    $645.00 

TDLZ-80ZPU  (the  one  with  full  software  available  now)  242.00 

EdgeConnectorsandguidesforlMSAI  each 4.25 

EdgeConnectorsandguidesforlMSAI  10for    40.00 

Vector  Graphic  8k  RAM  kit  with  500  ns  chips   225.00 

Seals  8k  RAM  kit  with  250  ns  chips    260.00 

NorthStarcompleteMicro-DiskSystemkit    599.00 


WETAKE 

MASTERCHARGEOBBANKAMERICARD 

For  phoneand  mail  orders... 

(Add  4%  of  TOTAL  ORDER  for  service  charge) 


TERMS:  Shipping  charges  —  $10.  per  CPU  or  large  units,  $1.50  per  kit, 

$2.  minimum  perorder. 
Provided  stock  is  available,  we  will  ship  immediately  for  payment  by 
cashiers  check  or  money  order. 

Allow  3  weeks  for  personal  checks  to  clear.  New  York  State  residents 
add  appropriate  sales  tax. 

PRICES  SUBJECTTO  CHANGE  WITHOUT  NOTICE. 

For  the  best  prices  available  on: 

IMSAI      •     TDL     •      NORTH  STAR     •      POLYMORPHIC 
TARBELL       •     SEALS  ELECTRONICS 

CALL:  (315)637-6208 

WRITE:    P.O.  Box  71  •  Fayetteville,  N.Y.  13066 


Confused  About 
Printers? 


MPI  HAS  YOUR  ANSWER! 


TTY  REPLACEMENT? 

The  SSP-40  contains  its  own 


.......   THESSP-40 

;§o;r -...for  easy  connection 


COW  COST  BUSINESS  SYSTEM? THEMP-40 

The  MP-40  connects  to  your  parallel  port  for  ASC11  data  transfer 


*575 

'425 
$179 


MINIMUM  COST  FOR  HOBBYIST?  THE  KP-40  KIT    "  I    I  5f 

-40  KIT  contains  mechanism  and  minimum  electronics  for 
connection  to  your  parallel  port. 

All  of  our  40  series  printers  use  the  same  reliable  5x7  impact  dot  matrix  mechanism  with 
up  to  40  columns  per  line  on  ordinary  paper  with  a  print  speed  of  75  lines/minute 

MASTER  CHARGE  WELCOME  •  UTAH  RESIOENTS  ADD  5%  SALES  TAX 

SEND  FOR  FREE  LITERATURE 

Box  22101 

Salt  Lake  City,  Utah  84122 
.   (801)566-0201 


Fundamentals  and  Applications  of 

Sol  Llbes 

1     T 

/   1 

n    ,  Q 

3   n 

: 

| 

1 

y 

1 

1        '' 

istttm        | 

, 

library  and  say,  "This  book  gave  me  my 
money's  worth,"  I  would  have  to  say  that 
the  book  would  be  Fundamentals  and  Appli- 
cations of  Digital  Logic  Circuits  by  Sol 
Libes.  Anyone  who  is  just  starting  to  learn 
about  digital  electronics  or  computers 
should  make  it  a  point  to  study  this  book. 
Mr  Libes  has  taken  a  multitude  of  related 
subjects  and  blended  them  into  a  text  that  is 
easy  to  understand  and  just  as  easy  to 
follow.  In  addition  to  the  text,  the  book 
provides  review  questions  at  the  end  of  each 
chapter  and  problems  related  to  the  text  for 
the  reader  to  solve. 

Rather  than  jumping  right  into  digital 
logic,  the  author  starts  out  with  the  prin- 
ciples of  semiconductors  to  show,  in  detail, 
how  they  function.  Then,  after  this  short 
course  on  semiconductors  in  the  first  chap- 
ter, the  second  chapter  familiarizes  the 
reader  with  binary  numbers  and  coding 
systems.  This  particular  chapter  also  shows 
how  to  convert  numbers  from  one  system  to 
another  and  touches  on  the  Gray  code. 
These  first  two  chapters  establish  the 
foundation  for  a  great  deal  of  the  informa- 
tion the  reader  will  receive  from  the  re- 
mainder of  the  book. 

During  the  next  four  chapters  the  reader 
learns  the  basic  fundamentals  of  logic  gates, 
flip  flops,  counters  and  registers,  and  arith- 
metic logic  circuits.  Throughout  the  book 
each  fundamental  is  illustrated  and  discussed 
in  great  detail.  Through  these  same  well 
done  illustrations  the  reader  next  learns 
about  various  pulse  sources  and  clock  sys- 
tems used  in  computers.  Further,  the  author 
goes  on  to  explain  such  devices  as  read  only 
memories,  as  well  as  input  and  output 
equipment  for  computers. 

Continuing  with  this  stage-by-stage  pro- 
gression, the  author  then  enlightens  readers 
about  the  circuitry  and  theory  of  digital  to 


Circle  62  on  inquiry  card. 


154 


Circle  63  on  inquiry  card. 


analog  conversion.  This  tenth  chapter  also 
deals  with  multiplexing  and  digitally  con- 
trolled analog  devices.  Finally,  in  the  last 
two  chapters  of  his  book,  Mr  Libes  shows 
the  reader  more  of  the  applications  aspect  of 
digital  logic  circuits.  These  two  chapters 
explain  the  different  types  of  circuitry  used 
in  digital  voltmeters,  multimeters,  calcu- 
lators and  computers  (the  latter  being  a 
Digital  Equipment  PDP-8/E). 

Throughout  the  book  the  reader  is  taken 
in  step-by-step  fashion  from  the  basics  of 
transistor  workings  to  circuit  applications  in 
working  digital  machines.  As  a  result,  this 
book  is  one  from  which  the  beginner  will  be 
able  to  learn  the  fundamentals  and  build  on 
them  afterwards." 

Michael  P  Reardon 

17  Earl  Ln 

RothsvillePA  17573 


BYTE's  Bits 


ACM  Pacific   77  Conference 

Small  computers,  from  piogram- 
mable  handhelds  through  mini  and  micro 
networks,  are  the  subject  of  technical 
papers  sought  for  this  year's  ACM  PAC- 
IFIC 77  conference  of  the  Association 
for  Computing's  Pacific  Region  chapters. 
The  San  Francisco  Bay  Area  meeting  will 
be  held  at  San  Jose's  LeBaron  Hotel  July 
28  to  29  1977. 

"Exploring  the  Small  Computer"  is 
the  theme  of  the  conference  which  is  ex- 
pected to  range  in  coverage  from  per- 
sonal computing  through  small  business 
applications  and  from  computer  parts 
and  peripherals  through  bullet  proof 
software.  Papers  will  be  presented  on 
new  developments  in  software  and  hard- 
ware in  these  areas  and  on  minilanguage 
processors,  miniperformance  predictions, 
microoperating  systems,  multimicropro- 
cessor  systems,  packaging  of  software  for 
sale,  portable  microsoftware  and  soft- 
ware engineering  "in  the  small."  Papers 
on  trends  in  software  and  current  appli- 
cation, on  the  future  of  minis,  and  on 
related  small  computer  topics  are  also  to 
be  presented. 

Peter  Szego,  Ampex  Corporation, 
is  General  Chairman  of  this  year's  re- 
gional conference,  which  is  jointly  co- 
sponsored  by  the  Association's  Pacific 
Region,  Peninsula  and  Golden  Gate 
Chapters.  Informal  symposia,  workshops 
and  invited  papers  are  expected  to  be 
scheduled  for  the  meeting  in  addition  to 
the  technical  paper  sessions.  Special 
conference  feature  will  be  an  evening 
"hobby  computer"  session,  to  be 
arranged  by  Jim  Warren,  editor  of  the 
home  computer  users  magazine,  Dr 
Dobb  's  Journal  of  Computer  Calisthenics 
&  Orthodontia,' 


21  START-AT-HOME 
COMPUTER  BUSINESSES 

in  the  shoestring,  start-at-home 

computer  business  handbook 

CONSULTING  #PR0G RAM MING  • SOFTWARE  PACKAGES  •COM 
FREELANCE  WR  I  T  I  N G  •  S EM  I N ARS  •  TAP E /D I S C  CLEANING 
FIELD  SERVICE  •  SYSTEMS  H OU S E S  •  L EAS I NG©SU P P L  I  E S 
PUBLISHING*  TIME  BROKE RS  •  HARDWAR E  DISTRIBUTORS 
SALES  AGENC  I  ES  •  HEADHUNTI  NG  •TEMPORARY  SERVICES 
USED  COMPUTERS  •  F  INDER' S  FEES^SCRAP  COMPONENTS 
COMPUTER  PRODUCTS  AND  SERVICES  FOR  THE  HOME 


l*St  AT-H8ME. 


Plus  -  -  hundreds  of  ideas  on 
moonlighting,  going  full-time, 
image  building,  revenue  building, 
bidding,  contracts,  marketing, 
professionalism,  and  much  more. 
No  career  planning  tool  like  it 
ever  published.  Order  now  and  if 
you're  not  completely  satisfied, 
send  it  back  within  30  days  for 
a  full  and  immediate  refund. 


•  8£  X  11  ringbound  «II3  pp.  •$12.00 


DRTRSERRCH 


730  WAUKEGAN  ROAD    •   SUITE  10 
DEERFIELD.  ILLINOIS  60015 


Rush copies  of  "The  Shoestring  Star   At-Home 

Computer  Business  Handbook  to  me  right  away  - 

NAME /COMPANY 

ADDRESS 

CITY /STATE /ZIP 

□  CHECK     ENCLOSEDfJJBANKAMER  I  C  ARD  [JJMASTE  RC  H  ARG  E 


155 


Circle  64  on  inquiry  card. 


^  START  HERE,  SCAN  DOWN  PAGE  FRAME  IDENTIFICATIONS 

0   1   2   3   1   6   (i   7   8   9   10  II   12  13  14   15  16  17  IS  19  20  21  22  23  24  25  26  27  28  29  30  31  32 


156 


Dr  Welles'  Economy  Floppy  Disk  Drivers: 
Machine  Readable  Object  Code 


Last  month,  we  published  Kenneth 
Welles'  article  on  the  driver  software  for  his 
Economy  Floppy  Disk.  This  issue,  we  con- 
tinue that  article  with  the  machine  readable 
bar  code  representation  of  the  object  code 
for  the  programs.  These  programs  were  pre- 
sented as  complete  symbolic  assemblies  of 
the  programs  on  pages  92-96  as  "listing  1" 
of  Dr  Welles'  article  in  June  1977  BYTE. 
The  materials  presented  here  are: 


Figure  1 :  Bar  code  representation  of  the  ob- 
ject code.  This  block  of  machine  readable 
bar  codes  contains  information  in  the  fol- 
lowing format  in  each  line  of  bars,  which  we 
call  a  "frame:" 

•  Sync  character,    binary    10010110 

•  Frame  checksum,  8  bit  summation 
of  all  remaining  bytes  in  the  frame, 
ignoring  carry  out  of  the  high  order 
bit. 

•  Relative  frame  indentification,  8  bit 
ascending  integer  enumerating 
frames  in  the  block  of  bars  printed 
here. 

•  Length  of  frame,  8  bit  number,  "n", 
giving  the  number  of  data  bytes  to 
follow. 

•  Data  of  frame,  a  total  of  "n"  bytes 
as  follows: 

•  High  order  byte  of  2  byte  data 
address  field. 

•  Low  order  byte  of  2  byte  data 
address  field. 

The  bit  level  format  of  the  data  is  as  follows: 
Each  bit  is  defined  by  a  bar  and  its  following 
space.  If  the  bar  width  is  equal  to  the  follow- 
ing space  width,  the  data  is  a  0  bit;  if  the  bar 
width  is  three  times  the  following  space 
width,  the  data  is  a  1  bit. 

And  a  Bar  Code  Bug. .  . 

Thanks  to  the  efforts  of  Ken  Budnick,  we 
found  one  fairly  serious  error  in  the  gener- 
ation of  the  texts  printed  in  the  March  and 
May  BYTEs.  Ken  has  implemented  detailed 
scanning  programs  for  several  micropro- 
cessors and  one  antiquated  second  gener- 
ation machine  and  has  tested  them  with  a 
bar  code  reader  design  by  Fred  Merkowitz. 


The  bug,  which  Walter  Banks  has  since 
corrected  in  the  phototypesetter  driver  pro- 
grams he  used  to  create  the  texts,  is  as 
follows:  the  checksum  field  of  the  bar  code 
frames  printed  in  those  two  issues  omitted 
the  frame  identification  byte  and  the  data 
length  byte  from  the  calculation.  Thus,  to 
verify  the  checksum  actually  generated 
in  the  object  text  of  the  Tiny  Assembler 
and  the  Bar  Code  Contest  string,  only  the 
data  field  should  be  used  to  calculate  this 
sum.  The  present  bar  code  text  generated  for 
Dr  Welles'  floppy  disk  driver  routines  calcu- 
lates the  checksum  properly,  and  future 
examples  will  reflect  this  fix  as  well." 


Table  1:  Confirmation  copy.  This  table, 
which  was  created  by  the  same  computer 
driven  typesetter  which  prepared  the  bar 
code  copy,  contains  a  complete  listing  of  the 
object  code  in  tabular  form.  This  table  is  not 
a  direct  mapping  onto  the  bar  code  frames; 
it  was  set  with  fixed  length  lines,  preceded 
by  an  address  value  for  the  first  byte  on  the 
line. 


onnn 

E3 

F5 

C5 

D5 

71 

2  3 

F5 

F5 

21 

18 

00 

CD 

4  5 

1)0 

II 

(  1) 

0010 

IF 

00 

II 

Dl 

CI 

Fl 

13 

C9 

0D 

OA 

45 

52 

52 

41- 

D2 

1-5 

0020 

0E 

20 

CD 

00 

00 

II 

15 

ol- 

OF 

OF 

OF 

CD 

3  3 

110 

II 

CD 

1)030 

33 

00 

C9 

15 

E6 

OF 

(ft 

io 

IF 

3  A 

D\ 

3F 

00 

(ft 

0  7 

41 

0040 

CD 

00 

00 

Fl 

C9 

71- 

B7 

(8 

F5 

Eft 

7E 

41- 

CD 

00 

on 

II 

0050 

F8 

2  3 

C3 

4  5 

00 

in  on 

F3 

Oft 

02 

C5 

CD 

15 

1-0 

CD 

ftF 

in 

CI 

C8 

05 

12 

01 

10 

1:0  10 

CD 

00 

00 

01 

C9 

3A 

ft  5 

1-2 

CD 

2B 

1:1 

2  1 

4H 

1-2 

Mr 

Oft 

in  :n 

10 

77 

2  3 

05 

C2 

21 

1-0 

3ft 

Kl 

2  A 

6ft 

1-2 

22 

48 

1-2 

2  1 

E030 

5B 

E2 

CD 

F3 

F0 

IB 

22 

72 

1-3 

CD 

D8 

Fl 

CD 

09 

1-2 

I  | 

1-04  n 

3ft 

01 

21 

4B 

12 

■\l 

D3 

11 

iA 

4ft 

E2 

Eft 

0A 

41 

CD 

IA 

EOS0 

E2 

79 

D3 

13 

Fft 

ID 

D3 

F3 

D3 

1-4 

71 

D3 

FO 

2  3 

IB 

7A 

1060 

B3 

C2 

58 

F0 

J  A 

4ft 

E2 

l-ft 

1-7 

D3 

E.3 

32 

4ft 

1:2 

("9 

(D 

I  070 

■V3 

E0 

CO 

2  1 

75 

1.3 

1  1 

5B 

1-2 

Oft 

00 

IA 

Bl- 

CO 

1  3 

2  3 

F080 

05 

C2 

7B 

i;o 

C9 

F3 

CD 

A3 

1-0 

C8 

CD 

A3 

II 

CD 

B2 

II 

E090 

CD 

A3 

E0 

C8 

('!> 

B2 

El 

CD 

A3 

El 

CD 

A3 

1:0 

(8 

CD 

00 

E0A0 

00 

02 

C9 

3F 

02 

32 

4  5 

E2 

CD 

B4 

EO 

C8 

21 

45 

1:2 

15 

E0B0 

F8 

C3 

A  8 

K0 

IA 

4A 

1-2 

CI) 

2B 

Fl 

CD 

D8 

El 

en 

09 

1:2 

rocn 

1  I 

1A 

01 

21 

7  5 

F3 

3E 

81 

D3 

F2 

CD 

IA 

1:2 

DB 

1-3 

DB 

eodo 

E4 

DB 

E0 

77 

2  3 

IB 

7  A 

B3 

C2 

CF 

E0 

21 

75 

1-3 

CD 

l'3 

E0E0 

E0 

3\ 

3A 

F2 

3  2 

7F 

1-3 

2  A 

KC 

1-4 

C3 

ED 

E0 

7C 

92 

CO 

K0F0 

7D 

93 

C9 

01 

Ift 

01 

1  1 

00 

00 

7E 

E5 

C5 

AB 

47 

01- 

OF 

FI00 

OF 

OF 

4F 

A  8 

Fft 

FO 

-VA 

ftF 

79 

07 

Eft 

IF 

AD 

6F 

78 

07 

El  10 

Eft 

01 

AS 

AD 

57 

79 

Eft 

OF 

A8 

5F 

79 

A  8 

07 

Fft 

1:0 

AB 

1-120 

5F 

CI 

El 

2  3 

0B 

78 

Bl 

C2 

F9 

F0 

C9 

IF 

08 

1-2 

8  5 

1:1 

El  30 

21 

3A 

E2 

BF 

ca 

F5 

E5 

3E 

08 

BF 

FA 

46 

El 

4E 

Oft 

00 

E140 

09 

2  3 

3A 

47 

F2 

77 

D3 

Fft 

El 

El 

77 

4F 

OF 

OF 

OF 

3  2 

FI50 

4ft 

E2 

D3 

F3 

DB 

Fl 

Eft 

04 

C2 

85 

Fl 

09 

23 

71-. 

32 

47 

FI60 

E2 

FE 

4D 

F8 

DB 

Fl 

Eft 

04 

C2 

84 

El 

CD 

A3 

Fl 

CD 

A3 

inn 

El 

CD 

A3 

El 

CD 

A3 

1:1 

CD 

B2 

El 

DB 

Fl 

Fft 

01 

C2 

77 

FI80 

El 

3  2 

47 

E2 

C9 

CO 

00 

00 

03 

C9 

3E 

FF 

32 

3A 

E2 

3C 

FI90 

F5 

CD 

9C 

El 

Fl 

3C 

FE 

08 

C2 

90 

El 

C9 

CD 

2B 

El 

CD 

F  1 A0 

fi4 

El 

C9 

21 

47 

E2 

34 

3A 

4ft 

E2 

Fft 

04 

3  2 

4ft 

E2 

C3 

FIB0 

BF 

El 

21 

47 

E2 

35 

3A 

46 

F2 

Eft 

FB 

32 

4ft 

E2 

Fft 

10 

FIC0 

D3 

F3 

Fft 

FF 

D3 

F3 

CD 

CA 

El 

O 

01 

FF 

03 

AF 

OB 

B9 

Finn 

C2 

CE 

El 

B8 

C2 

CE 

Fl 

C9 

3A 

48 

E2 

FF 

4D 

FO 

21 

4ft 

E1E0 

E2 

7E 

F6 

FE 

77 

3  A 

48 

E2 

DI- 

2C 

F2 

Fl 

El 

7E 

F6 

01 

FIFO 

77 

3A 

47 

E2 

47 

3A 

48 

E2 

BS 

C8 

F2 

03 

E2 

CD 

B2 

II 

F200 

C3 

Fl 

Fl 

CD 

A3 

El 

C3 

Fl 

El 

DB 

Fl 

Eft 

20 

D3 

F5 

CO 

F.210 

CD 

CA 

El 

CD 

CA 

F.I 

CD 

CA 

El 

C9 

DB 

Fl 

Eft 

10 

("2 

IA 

E220 

E2 

3A 

49 

E2 

Eft 

IE 

47 

DB 

Fl 

Eft 

08 

C2 

27 

1-2 

0  5 

EB 

F230 

DB 

Fl 

Eft 

08 

CA 

30 

E2 

C3 

27 

F.2 

00 

6143 

00 

00 

00 

00 

00 

00 

00 

00 

F25B 

81 

46 

49 

4C 

4E 

41 

4D 

4  5 

58 

54 

00 

00 

00 

00 

00 

00 

E26B 

00 

E270 

00 

E375 

81 

46 

49 

4C 

4E 

41 

4D 

4  5 

5  8 

54 

00 

00 

00 

00 

00 

00 

E385 

00 

F3  8A 

00 

157 


BYTE's  Bits 


National   Student   Programming  Contest 

The  First  Annual  National  ACM/UPR 
Student  Programming  Championship 
Contest  took  place  February  2  1977  in 
connection  with  the  Computer  Science 
Conference  in  Atlanta  GA.  The  contest 
was  sponsored  jointly  by  the  Committee 
on  Student  Chapters  and  Memberships 
and  Upsilon  Pi  'Epsilon  (National  Com- 
puter Science  Honor  Society).  Teams 
participated  from:  Catawba  College, 
Chattanooga  State  Technical  Commu- 
nity College,  Clemson  University, 
Georgia  Institute  of  Technology,  Georgia 
State  University,  Louisiana  Technical 
University,  Manhattan  College,  Michigan 
State  University,  North  Carolina  State 
University,  Purdue  University,  Taylor 
University,  Texas  A  &  M  University, 
University  of  Georgia  at  Athens,  Univer- 
sity of  Missouri  at  Rolla,  University  of 
New  Mexico  at  Albuquerque,  and  the 
University  of  Wisconsin  at  Platteville. 
The  contest  was  conducted  over  a  seven 


hour  period  from  5  PM  to  midnight  on 
February  2.  The  facilities  were  provided 
by  the  Computer  Center  at  Georgia  Insti- 
tute of  Technology  and  the  department 
of  Information  and  Computer  Science. 
Machine  time  was  provided  by  Control 
Data  Corporation  on  the  Georgia  Tech 
Cyber  74  computer.  The  teams  were 
given  four  problems  to  solve  using  ANSI 
FORTRAN.  These  problems  consisted  of 
a  Conversion  from  Roman  to  Arabic 
Numerals,  A  Character  Manipulation  for 
Rearranging  of  Names  and  Titles,  the 
Determination  of  Amicable  Numbers, 
and  the  Automatic  Scoring  of  the  Game 
of  Bowling.  The  winners  were  deter- 
mined by  penalty  points  and  the  elasped 
time  taken  for  each  problem.  Although 
many  teams  were  close  on  several  solu- 
tions, only  four  teams  completed  three 
of  the  problems. 

The  National  Champion  Team  is  Mich- 
igan State  University,  who  also  won  their 
regional  competition.  Second  place  went 


The  OAE  Model 
OP-80A  quality  en- 
gineered paper  tape  reader 
will  read  punched  tape  as  fast  as" 
you  can  pull  it  through  (0-5,000  cps) 
Each  unit  includes  a  custom  optical 
sensor  array,  high  speed  data  buffers, 
and  all  required  handshake  logic  to 
interface  with  any  microprocessor 
parallel  I/O  port.  Check  our  specs.  AT 
OAE  WE  MAKE  QUALITY  AFFORD- 
ABLE! 

Available  at  quality  computer  stores 
everywhere.  (Or,  add  $2.50  for  domes- 
tic shipping  and  handling  —  CA  res. 
add  6%.) 


$QC00 

^W      a&T 


OAE 

Oliver  Audio 
Engineering,  Inc. 

7330  Laurel  Canyon  Blvd. 
North  Hollywood,  CA.  91605 
(213)  765-8080 


to  Purdue  University,  third  place  to  the 
University  of  Missouri  at  Rolla,  and  the 
fourth  place  to  Georgia  Tech.  Trophies 
and  certificates  were  presented  to  the 
participants  at  an  Awards  Banquet  held 
February  3  at  a  luncheon  in  the  Marriot 
Hotel.  The  participating  teams  also  re- 
ceived free  registration  to  the  Computer 
Science  Conference  and  attended  two 
nights  of  an  informal  social  sponsored  by 
the  Committee  on  Student  Chapters  and 
Memberships. 

Plans  have  been  made  to  make  this  an 
annual  event  in  connection  with  the 
Computer  Science  Conference.  In  1978 
it  will  take  place  on  February  22  at  the 
Plaza  Hotel  in  Detroit  Ml.  Regional  con- 
tests will  be  scheduled  for  the  fall  of 
1977  to  qualify  teams  to  compete  in  the 
National  Contest.  Teams  and  sponsors 
for  these  qualifying  regional  contests  are 
being  solicited  from  all  regions  within 
ACM.  If  you  are  interested  in  partici- 
pating or  holding  such  a  contest,  please 
contact  Dr  Richard  Newman,  Academic 
Computing  Services,  Southern  Illinois 
University,  Carbondale  IL  62901 ,  (618) 
536-2323.* 


Attention  Educators  with  a  Message 

The  National  Association  of  Compu- 
ter Applications  to  Learning  (NAUCAL) 
will  hold  its  1977  annual  convention  in 
Dearborn  Ml  on  November  2  thru  5  1  977. 
The  convention  will  focus  on  education- 
al computing,  simulations  in  education, 
instructional  materials  and  teaching 
strategies.  Sessions  that  describe  and 
illustrate  computer  applications  in  learn- 
ing will  be  given  special  consideration. 

Individuals  who  would  like  to  present 
or  who  would  like  to  suggest  others  who 
could  present  may  write  to  John  S  Camp 
and  Lary  Smith,  Conference  Cochairmen, 
Wayne  County  Intermediate  School 
District,  33500  Van  Born  Rd,  Wayne 
Ml  48185." 


Repairing  Torn  Paper  Tapes 

Translucent  paper  tapes  are  an  inex- 
pensive, efficient  way  of  permanently 
storing  information  for  a  computer. 
However,  after  pulling  the  tape  through 
a  hand  held  paper  tape  reader  a  dozen  or 
so  times  the  tape  tends  to  get  pretty  rag- 
ged. Sooner  or  later  the  tape  will  tear 
and  have  to  be  repaired  before  it  can  be 
used  again.  I  have  found  that  transparent 
Mylar  movie  film  splicing  tape  is  perfect 
for  the  repair  job.  The  splicing  tape  is 
clear,  strong  and  will  not  crack  or  yellow 
with  age.  It  is  also  quite  thin  and  will  not 
interfere  with  the  passage  of  the  paper 
tape  through  the  reader.  The  tape  sticks 
very  well  to  paper  but  if  necessary  can 
be  removed  without  causing  any  damage. 
Mylar  movie  film  splicing  tape  is  avail- 
able   at    any    camera   store. 

Richard  E  Hetherington 

637D  Pendleton  Av 

Chicopee  MA  01020" 


Circle  65  on  inquiry  card. 


158 


^  Boardwalk 


Shelburne  Hotel 
P.O.  Box  1138 

Atlantic  City,  NJ  08401 
(609)  344-8131 


Saturday  night  Banquet  of  Filet  Mignon  $17.50 

Over  150  Exhibits  and  60  hours  of  seminars 

Conferences  being  planned  on;  Clubs;  Newsletters;  Energy  Conservation;  Medical  Applications; 

and  more.   Seminars  being  planned   on;  all  aspects  of  Computing;  Music;  Basic  Programming; 

Games;  Education;  Various  Microprocessor  Evaluations;  Synthesis;  S-100  Bus;  and  more. 


Another  1st, 


Personal  Computing  College  ™ 


To  be  held  at  the  Shelburne  Hotel. 


Please  rush 
Please  rush 


Address 


City 


•••*••••••••••••• ••••••••••••••••••••••••••••••** 

% 

i 

* 


* 
* 

* 
* 
* 
* 
* 
* 
* 
* 
* 
* 
* 
* 
* 
* 
* 
* 

* 

* 

* 
* 
* 
* 
* 
* 
* 
* 
* 
* 
* 

* 
* 
* 
* 
* 
Jf 

* 
* 
* 
* 

* 

* 
* 
* 
* 

* 

* 
* 
)f 
•••••••••••••••••••••••••  •••••••••^ 


WEDNESDAY-THURSDAY-FRIDAY,  AUGUST  24-25-26 
3  Day  Micromputer  Interfacing  Workshop  by  TYCH0N  Inc. 


A  hands  on  experience  for  the  participants  where  they  will  spend 
almost  50%  of  their  time  working  on  well  documented  Interfac- 
ing and  Software  experiments.  Students  deal  with  the  microcom- 
puter at  the  bus  level,  interfacing  the  computer  using  solderless 
breadboarding  techniques  and  assembly  language  programs. 

Presented  by  Jonathan  A.  Titus  and  Dr.  Christopher  A.  Titus, 
Authors  of  the  famous  "BUGB00KS." 

For  reservation  information  and  complete  brochure  contact: 
TYCH0N  Inc.  c/o  Shortess-Rawson,  Dept  PC77,  P.O.  Box  2203, 
South  Hackensack,  N.J.  07606. 


FRIDAY,  AUGUST  26 
6  Hour  seminar  by  Dr.  Adam  Osborne 

"Microprocessors  -  Where  they  came  from  and  where  they  are 
going.  An  analysis  of  all  products  on  the  market  today." 

Dr.  Adam  Osborne  will  present  a  6  hour  seminar  covering  topics 
such  as:  Bringing  order  out  of  chaos;  All  microprocessors  are  not 
equal-each  serves  one  market  better  than  the  other;  Identifying 
those  markets  best  suited  to  each  microprocessor;  Real  sales 
volume  anticipated  for  1977;  Comparisons  including:  8085  vs. 
Z80,  8048  vs.  F8,  Etc. 

For  reservation  information  and  complete  brochure  contact: 

Osborne  &  Associates,  Inc.,  Dept.  PC77,  P.O.  Box  2036, 
Berkeley,  Ca.  94702,  415- 


Inc, 
-548-2805. 


PC '77  Weekend  admission  at  the  door  will  be  $10.00.    Register  before  August  10th  and  SAVE  20%  and  AVOID  WAITING  IN  LINE! 
Admission  includes  exhibits  and  seminars  for  both  days,  August  27— 28th. 


advance  registration  tickets  for  August  27— 28th  @  $8.00  each. 
Banquet  tickets  for  Saturday,  August  28th  @  $1 7.50  each. 


Send  reduced  Hotel  rate  information . 

Make  all  checks  payable  to  "PERSONAL  COMPUTING  77"  and  mail  to: 
PC'77,  Route  1,  Box  242,  Mays  Landing,  N.  J.  08330. 


Name 


Amount  enclosed 


State 


Zip 


159 


Circle  51  on  inquiry  card. 


Microcomputer 

Handbook 

by 

Charles  J  Sippl 


We  often  hear  people  say,  "I'd  like  to  find  out  more  a- 
bout  microcomputers.  I'm  not  a  technical  type,  but  I  feel  I 
can  handle  a  fairly  rigorous  approach  as  long  as  it's  well 
written.  What's  available?"  Charles  J  Sippl's  Microcomputer 
Handbook  is  one  answer  to  this  question.  The  book  covers 
the  present  state  of  computer  technology  very  well,  concen- 
trating on  both  hardware  and  software.  Lucid  and  complete 
glossaries  are  combined  with  a  variety  of  illustrations.  Topics 
covered  include:  Microcomputers:  where  they  are,  what  they 
are  doing,  and  what  is  next;  kits;  distributed  intelligence;  and 
why  the  new  systems  are  easier  to  use.  The  book  was  written 
by  a  computer  industry  lecturter  and  consultant  and  is  highly 
recommended  for  the  intelligent  layman  as  well  as  for  profes- 
sionals and  experimenters. The  glossaries  alone  are  worth  the 
price  of  the  book-don't  miss  this  one!  This  hardcover  refer- 
ence is  only  $19.95,  plus  50  cents  postage. 


Send  now  to: 

BITS  Inc 

70  Main  Street 

Peterborough  NH  03458 

Please  allow  six  weeks  for  delivery 


Master  Charge  and 

Bank  Americard  Welcome 


BUILD  THE  CRATE! 


THE  S-100  CARDFRAME  THAT 
YOU  CAN  BUILD  FOR  LESS  THAN  $150 

COMPLETE  PLANS,  INFO  ON  TOOLS,  PARTS,  SOURCES,  ETC, 
ORDER  THE  CRATE  BOOK $1  9.95 

ENCOUNTER! 

FOR  GAME  LOVERS,  REALTIME  GAMEBOARD  WARFARE  ON  A  VDM. 
NO  TAKING  TURNS,  JUST  ACTION,  STRATEGY,  AND  LOGISTICS. 

8080  CODE  ON  P-TAPE  +  SOURCE,  RULES $1  6.95 

USE  SYS  8/SOFT  PKG  1? 

AUTO-LINE  ENTRY.  STRING  EDIT,  AUTO  TABS.  OCTAL  NBRS, 
MULT,  SECTION  ASSEMBLIES.  MORE  ADDED  BY  OUR  PROGRAM. 

source $1 4.95 

add  $5  for  p-tape,  $10  for  tarbell  tape 

OBJECTIVE  DESIGN,  INC. 

P.O.  BOX  20325,  TALLAHASSEE,  FL.  32304 


Qlubs  and 
Newsletters 


Conducted  by 
Peter  Travisano 


Arizona  Computer  Society 

The  Arizona  Computer  Society  meets 
regularly  on  the  second  Tuesday  of  each 
month  at  De  Vry  Institute,  4702  N  24th  St, 
Phoenix  AZ  85063. 

A  New  Club  in  Boston 

With  all  the  computer  activity  in  the 
Boston  area  this  should  be  welcome  news. 
A  new  group  called  the  Boston  Computer 
Club  is  forming  for  people  with  both 
hobbyist  and  industrial  interests.  As  of  now 
the  club  provides  access  to  a  timesharing 
PDP-8  and  an  Altaic  8800a.  For  further 
information  contact  Jonathan  Rotanberg,  17 
Chestnut  St,  Boston  MA  02108. 

DUMPS  in  Delaware 

A  group  of  hobbyists  at  the  University  of 
Delaware  recently  formed  the  Delaware 
Users  of  Microcomputer  Systems  or  DUMPS. 
The  club  is  informal  and  the  membership 
has  a  wide  range  of  interests.  Meetings  are 
held  on  the  third  Monday  of  the  month  at 
7:30  at  New  Central  School,  Academy  St, 
Newark  DE  19711. 

Long  Island  NY— Licus 

The  Long  Island  computer  group  is  a 
growing  concern  made  up  primarily  of  high 
school  and  college  students.  Meetings  are 
usually  held  on  second  Tuesdays  at 
Commach  High  School  South.  To  find  out 
more  write  LICUS,  POB  322,  East  North- 
port  NY  11731. 

State  College  PA 

The  Nittany  Amateur  Radio  Club  of 
State  College  PA  sponsored  a  one  day  micro- 
computer seminar,  an  introduction  to  inter- 
facing, programming  and  applications  with 
an  emphasis  on  real  world  situations.  The 


Circle  66  on  inquiry  card. 


160 


New  kid 
on  the 

block! 

But  watch  out 

he  means 

business 


PERSONAL 

COMPUTING  EXPO 

COMES  TO  NEW  YORK  FOR  BIG  BUSINESS 

It's  a  brand  new  show  in  the  world's  biggest  economic  center 
specifically  for  manufacturers  and  buyers  who  are  into  personal 
computing.  For  the  first  time,  this  booming  field  will  have  a  New 
York  Coliseum  showcase  in  the  major  population  center  in  the 
east.  It  is  planned  as  the  largest  public  show  of  its  type  in  the  world 
that  will  attract  enthusiastic  buyers  from  a  multi-state  area. 

WHY  NEW  YORK? 

New  York  is  the  economic  nerve  center  of  the  world.  It  also  is 
the  world's  communications  focal  point,  the  one  place  that  will  put 
personal  computing  in  a  significant  spotlight.  New  York  is  sur- 
rounded in  depth  by  people  who  work  in  the  computer  field,  by 
computer  learning  centers,  universities,  personal  computing 
clubs,  and  thousands  of  others  whose  lives  are  affected  by 
computers. 

From  this  vast  potential,  Personal  Computing  Expo  will  draw 
the  hard-core  hobbyist,  the  interested  student,  and,  because  of  a 
highly-publicized  program  of  introductory  seminars,  those  who 
are  attracted  and  fascinated  by  computing  but  have  not  had  expo- 
sure to  the  ways  and  means  of  becoming  personally  involved. 

SHOW  MANAGEMENT 

Personal  Computing  Expo  is  being  produced  by  H.A.  Bruno  & 
Associates,  Inc.,  a  firm  in  the  exposition  and  promotion  fields 
since  1923.  Highly  skilled  in  the  production  and  promotion  of 
consumer  and  trade  shows,  the  company  currently  promotes  the 
American  Energy  Expo,  the  National  Boat  Show,  Auto  Expo/ 
New  York.  Promotion  assistance  also  is  currently  rendered  to  the 
National  Computer  Conference  and  the  Triennial  IFIPS  Congress 
in  Toronto. 

The  show  producer  has  promoted  successful  shows  in  the  New 
York  Coliseum  every  year  since  the  building  opened  in  1957. 
Staff  personnel  are  thoroughly  familiar  with  the  building,  its 
services,  management  and  labor. 

EXCITING  SEMINARS  FROM  "BYTE" 
MAGAZINE 

Personal  Computing  Expo  is  endorsed  by  "Byte"  magazine, 
whose  staff  is  developing  an  exciting  series  of  seminars  and 
lectures  for  the  exposition. 

Visitors  to  the  show  will  be  able  to  attend  these  meetings  free  of 
charge.  They  will  hear  from  lecturers  such  as  Louis  E.  Frenzel 
and  Carl  L.  Holder.  More  importantly,  visitors  will  be  able  to 
attend  meetings  aimed  at  their  proficiency  levels,  from  beginner 
through  intermediate  and  advanced  personal  computing. 

FOR  DETAILED  INFORMATION  CONTACT: 

RALPH  IANUZZI,  Show  Manager 
H.A.  BRUNO  &  ASSOCIATES,  INC. 
78  E.  56th  Street 
New  York,  N.Y  10022 
(212)  753-4920 


PCE 


Endorsed  by  BYTE  Magazine 

OCTOBER  28,  29,  30,  1977 
PERSONAL  COMPUTING  EXPO  •  NEW  YORK  COLISEUM 


Circle  67  on  inquiry  card. 


Why  Wait? 

Ufa-* 


m- 


an 


HMH     HmM*  PWI1'  :-PWv-  ■.^^^3P^^^^',-/W^  1 


^WiSSr 


The  Tarbell  Cassette  Interface 

Plugs  directly  into  your  IMSAI  or  ALTAIR* 

Fastest  transfer  rate:  187  (standard)  to  540 
bytes/second 

Extremely  Reliable  —  Phase  encoded  (self- 
clocking) 

4  Extra  Status  Lines,  4  Extra  Control  Lines 

37-page  manual  included 

Device  Code  Selectable  by  DIP-switch 

Capable   of   Generating    Kansas   City    tapes 
also 

No  modification  required  on  audio  cassette 
recorder 

Complete  kit  $120,  Assembled  $175,  Manual 
$4 

TARBELL  ELECTRONICS 

20620  S.  Leapwood  Ave.,  Suite  P,  Carson,  Ca.  90746 
(213)  538-4251 

California  residents  please  add  6%  sales  tax 
•ALTAIR  is  a  trademark/tradename  of  MITS,  INC. 


Mail  Order  Computer  Store 

IMSAI  8080  kit  with  22  slots  (limited  quantity) $    599.00 

IMSAI    4k  RAM 129.00 

IMSAI  16k  RAM 419.00 

IMSAI  32k  RAM 699.00 

IMSAI  64k  RAM 2,459.00 

When  Ordered  With  Kit 


TERMS:  Shipping  charges  —   $10.  per  CPU  or  large  units.  $1.50  per  kit,  $2 

minimum  per  order 
Provided  stock  is  available,  we  ship  immediately  (or  payment  by  cashiers  check  or 
money  order. 

Allow  3  weeks  for  personal  checks  to  clear. 
Nevada  residents,  please  add  appropriate  tax. 

PRICES  SUBJECT  TO  CHANGE  WITHOUT  NOTICE 

PLEASE,  NO  PHONE  ORDERS  ACCEPTED 

Phone:  (702)734-1104 
Write:     Metatec  Corporation 

3453  Industrial  Road 
Las  Vegas,  NV  891 09 


guest  instructor  was  David  G  Larsen, 
WB4HYJ,  from  the  Department  of 
Chemistry,  Virginia  Polytechnic  Institute 
and  State  University.  Larsen  is  a  member  of 
a  team  that  has  toured  the  nation  presenting 
similar  seminars  and  has  been  published 
widely  on  the  subject. 

One  significant  by-product  of  the  seminar 
was  the  formation  of  the  Center  County 
Computer  Club.  Membership  can  be 
obtained  from  Carl  Vesper,  131  Sowes  St, 
Apt  E-1 0,  State  College  PA  1 6801 . 

SR-52  Users  Club 

TheSR-52  Users  Club  is  a  nonprofit  loose- 
ly organized  group  of  SR-52  and  SR-56  users 
who  wish  to  expand  their  knowledge 
through  information  exchange.  Activity 
centers  around  a  monthly  newsletter,  52 
NOTES,  published  by  Richard  C  Vanderburg, 
9459  Taylorsville  Rd,  Dayton  OH  45424.  A 
membership  fee  of  $6  includes  a  6  issue 
subscription.  Back  issues  are  available  for 
$1  apiece. 

Permian  Basin  Computer  Group  —  Midland 
and  Odessa  Colleges  TX 

The  Permian  Basin  Computer  Group  has 
factions  on  both  the  Midland  and  Odessa 
College  campuses.  The  Midland  group  meets 
on  the  second  Monday  of  the  month  at  7:30 
in  the  Student  Union  Building.  The  Odessa 
group  meets  on  the  second  Saturday  at  1 :30 
in  the  Electronic  Technology  Building, 
Room  203.  For  additional  information  write 
John  Raenaldt,  POB  3912,  Odessa  TX  or 
phone  (915)  332-9151  Mondays  through 
Fridays  between  9:00  and  5:00  or  (915) 
697-4607  after  6  PM. 

Goodyear  Computer  Club 

The  Goodyear  Computer  Club  in  Akron 
OH  is  off  to  an  auspicious  start:  just  a  few 
months  old  and  able  to  boast  a  member- 
ship of  more  than  150.  Generally  the 
members  are  associated  with  the  Goodyear 
Aerospace  Corporation  or  the  Goodyear  Tire 
and  Rubber  Company.  Contact  the  Good- 
year Computer  Club  c/o  J  F  Derry,  D-109 
Pit  1,  The  Goodyear  Tire  and  Rubber  Co, 
Akron  OH  44316. 

Aloha  Computer  Club 

Don  Henson,  president  of  the  Aloha 
Computer  Club  of  Millani  Town  HI,  has 
made  an  interesting  offer.  He's  willing  to 
give  monthly  seminars  limited  to  six  begin- 
ners. Sounds  like  the  best  possible  way  to 
share  computer  information  and  get  more  of 


Circle  68  on  inquiry  card. 


162 


SERIAL  SYSTEMS  MODEL  301 
(The  Black  Box) 


Max  performance  at  Minimum  price- 
Serial  data  to  FSK  of  FSK  to  Serial 
Communicate  between  uProcessor 
and  cassette  tape,  or  radio  transceiver 
and  RTTY,  also  easily  adapted  to 
phone-50  to  600  BAUD-Crystal 
controlled— Programmable  for  all 
standard  freq's  (Kansas  City,  Altair, 
Amature  RTTY) 

Assy  and  Tested  $49.95 
Mew  90  Key  keyboard  Encoder  Chip 
Hook  Row  and  Column  to  your 
keyboard  and  select  ASCII,  BAU- 
DOT, ANSI  TTY,  or  ASR-33  out- 
puts. 

$24.50 
TMS9900  1 6  bit  uP  Chip  $99.50 

Serial  Systems  (Div.  of  ASC) 
P.O.  Box  20330 
Minneapolis,  MN  55420 


Circle  09  on  inquiry  card. 


SAW  Mo«ev,& 

for  12.   /s.su*s  <fi  an 

entries     ^/*t"fe 
3.6?  Ui(U*  Si.  (& 

/Slew  Haven  CT  0(>SH 

Heathkit  is  a  registered  trademark 

of  Heath  Company. 


re^s 


NOW  HEAR  THIS!! 

ALPHA  DIGITAL  SYSTEMS 

SELLS  IMSA1  KITS  AND  TOTAL  IN- 
TEGRATED SYSTEMS  ASSEMBLED. 
CHECKED-OUT.  AND  WARRANTED  AT  KIT 
PRICES. 

ALPHA  I 
SPECIAL  DOS  SYSTEM  DEAL  (includes) 
»  IMSAI  8080  Computer 

•  22  Slot  Mother  Bd.  with  Conn. 

•  16  K  RAM 

•  90  K  Disk  (with  Controller) 

•  Selectric  typewriter  (with  Controller) 
»  DOS-BASIC  Software 

Assembled  System  Total  $3995. 
( Less  Selectric  )S2»5 

Select  any  kit  or  system  of  kits  from  the  IMSAI 
price  list,  order  from  us  and  receive  the 
assembled  unit  for  the  same  price.  If  you  don't 
have  a  price  list,  drop  us  a  line  and  we  will  send 
you  one.  Terms:  Cash  with  Order  •  Prices  in- 
clude freight.   (  N.C  Residents  Add  4°0  Sales  Tax  ) 

How  can  ALPHA  DIGITAL  SYSTEMS  do  all 
this?  Its  simple.  ALPHA  DIGITAL  WANTS  TO 
BE  YOUR  COMPUTER  COMPANY. 

ArtC       ALPHA  DIGITAL  SYSTEMS 
•*■**  RT.  4  BOX  171A 

BOONE,  N.C.  28607 

(704)  264-7946 


Circle  70  on  inquiry  card. 


(301)  779-7998 
7338  Bdli.more  Ave..  Suite  700     ColleCJS  Park.  Maryland  70740 


IMSAI  made  kits  &  assembled  units  . 


.  17%  OFF  LIST 


TEC-9900-SS-UF,  16  hit  TI9900  mictoP.  32  hit  1/0  liatdwai 
8.  div,  buffered  bus.  20  ma  or  RS232,  8  interrupts  &  sockets 

S279.00 

TEC-9900-32KB  32K  bytes  memory S649.00 

TEC-990D-PP  power  supply  S129.00 

CR0MEMC0kitsSZ-l,Z-2 10%  OFF  LIST 

SANYO  TV  monitors 10%  OFF  LIST 

TDL  ZPU  &  Z16K 12%  OFF  LIST 


SEALS  8K  bat.  backup  Mem 

PERSCI  Dual  floppy  &  intelligent  controller 
(#270  8,1070) 


.10%  OFF  LIST 


SHUGART  MINI-FLOPPY 

2U02  50Dns S1.90 

21  L02  450  ns S1.50 

21  L02  400  ns S1.99 

Z-80  microP S45.00 

Z-80  CTC S9.50 

8080A  2.5  MH S17.00 

8080  PPI SI  0.00 


5%  OFF  LIST 

S375.00 

$1.85 

SI.95 

S9.50 

1702A  EPR0M S8.00 


21112  ',1111  n, 
2102  400  ns 
Z-80  PI  0 


80BOA30MH 

80BOSCI 

8224  Clock  Gen.  . 
B216/26  0river_ 

8251  PCI  

2102  050  ns 

2708  EPR0M S29.00 

ADM-3A  tCRT  8.  addressable  cursor  S925.00  list 

IMat.  Multiplex  Digital  Tape  recorders  &  kits _ 

MSI  floppy  8.  kits 

Pennywhistla  modem  _ 


8212  I/O  port  

8228  Clock  Driver - 
8255  PPI  . 


.  S2.50 
-S5.50 
_S9.50 


-S20.00 
-S10.00 
_S4.75 
_S2.50 
-S9.50 
_S1.75 


S799.00 

10%  OFF  LIST 
10%  OFF  LIST 
.  5%  OFF  LIST 
.5%  OFF  LIST 


Tl  "silent  700"  model  743,  printer  $1335  list 

Send  S2.00  for  newsleuer  and  list.  4%,  with  minimum 
S4.00  for  shipping  and  handling.  See  flyer  for  policies 
and  delivery  times  on  group  OEM  buys  and  other 
products. 


Circle  72  on  inquiry  card. 


Circle  73  on  inquiry  card. 


PHOENIX 

Bits  &  Bytes 

COMPUTER  SHOP 

•  Lear  Siegler  ADM-3  Kit  $849. 

•  Vector-1  8080   16  K        $968. 

•  9"  Sanyo  Monitor  $159. 

North  Star  -  EPA  -  Tarbell 
Act  1  Terminals  -  Cybercom 
IASIS  Computer-in-a-book 
Vector  Graphics  -  Per  Com 

6819-CN.  21st  Ave. 

Phoenix,  Az.  85015 

(602)  242-2507 


Circle  71  on  inquiry  card. 


But  You  Only  Need 

4i-THE  COMPUTER  CORNER: 

~**~  •SOL  -  A  New  Dawn  Is  Here! 

"**""  •IMSAI  8080 

"•*""  •POLY  -  88 

"►*-  •  TDL  Z-80 

"+*""  •Memories  &  I/O  Boards 
-W- 

-H—  •Computer  Book  Service                                _ 

frj...  •Magnetic  Tapes  &  Disks                             _ 

+\—  •  Full  Line  of  Magazines                           _ 

,-^j-  •  Brain  Games  &  Puzzles                        _ 

■H  •Workshops  &  Club  Information     _ 

~^~     Visit    THE    COMPUTER    CORNER    for     ~ 
fc,       all   your  computer   needs.   Stop   in  and 

browse  —  you'll  like  our  personal  service. 
*t  - 

y  THE  COMPUTER  CORNER 

White  Plains  Mall  -  Upper  Level 
"W~  200  Hamilton  Avenue  ™ 

-H-  White  Plains.  New  York  1  0601 


Tel:  (914)  WHY -DATA 


Ample  Parking 
10-6  Daily  &  Saturday 


V/  10-9  Thursday  \  ^ 


Circle  74  on  inquiry  card. 


computer 

d-  T.M. 

epOt  inc. 


Parts  galore  in  the  Midwest  for 


PROCESSOR  TECHNOLOGY,  IMSAI, 
POLYMORPHIC  SYSTEMS,  DIGITAL 
GROUP,  WAVE  MATE,  CROMEMCO, 
VECTOR  GRAPHICS,  TDL,  SEALS, 
TARBELL,  MICRO  DESIGNS, 
NORTH  STAR,  PERIPHERAL 
VISION;  INTEL,  NATIONAL  SEMI- 
CONDUCTOR, FAIRCHILD  SEMI- 
CONDUCTOR, MOSTEK,  E&L 
INSTRUMENTS,  SAMS,  TAB, 
HAYDEN,   WILEY,   MC-GRAW    HILL 

Catalog  Free 

Computer  Depot  Inc. 
351  5  W.  70th  Street 
Minneapolis   MN    55435      c40 


IN 

SOUTH  FLORIDA 

IT'S 

COMPUTER  HUT 

FEATURING  POLY  88 

5905  NW  151  St. 

Miami  Lakes,  FL  33017 

(305)  558-8080 


COMPUTER  MART 
OF 

DEALERS  FOR 

TDL    ICOM    IMSAI 

DIGITAL  GROUP 

SOFTWARE  INCLUDES: 

8K  BASIC  EXT.  BASIC 

TEXT  EDITOR       DISK  BASIC 

WORD  PROCESSOR 

MACRO-ASSEMBLER 

1 70  MAIN  STREET     NASHUA 
(603)  883-2386 


Circle  75  on  inquiry  card. 


Circle  76  on  inquiry  card. 


Circle  77  on  inquiry  card. 


the  many,  many  interested  people  involved 
in  personal  computing.  Aloha  meets  on  the 
first  Wednesday  of  the  month  at  7:30  at 
the  Waikiki-Kapahulu  Library,  400 
Kapahulu  Av.  Seminars  are  held  at  various 
times  throughout  the  month.  New  members 
are  more  than  welcome.  To  learn  more  write 
94-360  Hokuala  St,  Apt  187,  Millani  Town 
HI  96789  or  call  (808)  623- 1 78 1. 

Central  Florida  Computer  Club 

A  new  hobbyist  group  has  been  formed 
in  Orlando,  jim  Walton  is  the  contact  person 
for  the  Central  Florida  Computer  Club.  He 
can  be  reached  c/o  Data  Entry  Engineering, 
1810  N  Orange  Av,  Orlando  FL  32804, 
(305)  896-4322. 


Electronotes  -  Newsletter  of  the  Musical 
Engineering  Group 

Those  people  interested  in  both  electronic 
music  and  instrument  construction  will  find 
Electronotes  most  valuable.  An  in-depth  pre- 
sentation focusing  on  the  ENS-76  is  planned 
for  the  next  several  issues.  Electronotes  is 
published  by  B  A  Hutchins,  203  Snyder  Hill 
Rd,  Ithaca  NY  14850.  Routine  orders 
should  be  sent  c/o  Electronotes,  213  Dryden 
Rd,  Ithaca  NY  14850. 

Pittsburgh  Area  Computer  Club 

The  place  to  share  computer  lore  in 
Western  Pennsylvania  is  the  Pittsburgh  Area 
Computer  Club.  Contact  PACC  at  400 
Smithfield  St,  Pittsburgh  PA  15222. 


-DRAWPICTURES 
-COMPOSE  MUSIC 
-INPUT  TO  GAMES 

Attaches  to  any  8080  system  with 
TTL  input  port  and  memory  mapped 
video  driver  (PTC,  Cromemco,  Poly- 
morphic, etc.).  Allows  computer  to 
interrogate  the  pen  at  any  time  and 
determine  its  location. 


$29.95 


assembled  &  tested 
with  software 


+  $1.50  postage  &  handling 

Educ.  Data  System  of  Va.,  Inc. 

P.O.  Box  2115 

Newport  News,  Va.  23602 


!mAg!n! 


What  you  can  do  with  a  4K  RAM  that 
can  be  positioned  anywhere  in  memory 
by  program  commands. 

We    have   some    ideas    you  may    not    have 

thought  of    Write  and  ask  about  our  new 

4K  PL  (program  localable)  RAM  card  tor 
IheSIOObus 

The  4K  PLRAM  comes  fully  assembled, 
tested  and  burned  in  lor  only 


$179. 


IN  CANADA 

$199. 

Sorry  -  Blame  Pierre 
Offl   Residents 
Add  7%  PST. 


EiflA 

industries  ltd. 

P.O.  Box  421  Simcoe,  Ontario 
Canada.      N3V  4L5 


South  Florida 


Sunny  Computer 
Stores,  Inc. 


South  Florida's  First  Computer  Store 

WE  CARRY: 

•IMSAI,      COMPUCOLOR,      PROCESSO. 
TECH.,        SOUTHWEST,        CSC, 
CROMEMCO,  SEALS,  VECTOGRAPHIC, 
MULLENS,  MORROWS,  VECTOR 

•BOOKS,  MAGAZINES,  NEWSPAPERS 
SOCKETS,  CONNECTORS,  IC'S, 

PRINTERS 

•DEBUGGING  EQUIPMENT 

•SOFTWARE 

•TOTAL  MAINTENANCE  &  REPAIR 

•WRITE  OR  PHONE  US  FOR  PRICES 

UNIVERSITY  SHOPPING  CENTER 
1238ASOUTH  DIXIE  HIGHWAY 
CORAL  GABLES,  FLA.  33146 
(305)661-6042 


Circle  78  on  inquiry  card. 


Circle  79  on  inquiry  card. 


Circle  80  on  inquiry  card. 


k 


LOGIC 

DESIGN 

INC 


QUALITY  Support  for  those  who 
wish  to  dig  deeply  into  digital  design. 

Breadboarding  System,  textbook  on 
logic  design,  and  complete  schemat- 
ics tor  an  elegant  CPU  that  will  run 
the  PDP8  instruction  set    . . .  $1095 

132  IC's    $     87 

TTY  Interface  $     20 

Memory    $26/k 

BOX  3991,  UNIV.  STATION 

LARAMIE,  WY  82071 

(307)  742-7977 

Circle  94  on  inquiry  card. 


£x 


aeco 


THE   ULTIMATE  IN 


imsu  tam  bsasse: 

Precision  machined  tape  guide 
Interface  directly  to  a  M«,  or  yflJUT 
Tri-state  buffer  output 
all  handshake  logic  TtL  compatable 
Pull  thru  tape-  Reads  5 to 555-9  cps 
Interface  thru  a  14  pin  IC  plug  „»,„», 

TPfj'5         ASSEMBLED     1     JESTED  $38.00' 

M5A'1   pl-UG-IN   HANDSHAKE    ADAPTER  ♦      5.50' 


TO    OHjJER^SE^O^^HECHClRM^O.    TO: 

MICROCOMP    PO  BOX  '"T 

""    «*«*■* "  "•  FOND    DU     LAC,      Wl       54935 


WE  SPECIALIZE   IN   MICROCOMPUTER  SYSTEMS    FOR 
HOBBY-  BUSSINESS-  EDUCATION 
WE   ARE    EXCLUSIVE    OSI    DEALERS... 


WE 


KITS-FULL    SYST 
SEND 


00   A    BETTER     JOB. 

STEMS-  PERIPHERALS-FLOPPY    DISKS-  ACCESSORIES 
IOOKS'   MAGAZINES- 


CATALOG      TODAY  I 


CANADIANS! 

Eliminate  the  Customs  Hassles. 
Save  Money  and  get  Canadian 
Warranties  on  IMSAI  and  S-100 
compatible  products. 

IMSAI  8080  KIT  $  838.00 
ASS.  $1163.00 
(Can.  Duty  &  Fed.  Tax  Included). 
AUTHORIZED  DEALER 
Send  $1.00  for  complete  IMSAI 
Catalog. 

We  will  develop  complete  applica- 
tion systems. 
Contact  us  for  further  information. 


Rotundra 
Cybernetics 


/A 


Box  1448,  Calgary,  Alta.  T2P  2H9 
Phone  (403)  283-8076 


Circle  95  on  inquiry  card. 


Circle  96  on  inquiry  card. 


A  New  Orleans  Computerfest 

The  Jefferson  Amateur  Radio  Club  and 
the  Crescent  City  Computer  Club  would 
like  to  announce  the  New  Orleans  Hamfest/ 
Computerfest  which  will  be  held  at  the  Hilton 
Inn  in  Kcnner  LA  (directly  across  from  the 
New  Orleans  International  Airport)  Septem- 
ber 24  and  25.  This  is  the  ARRL  Delta 
Division  Convention  for  1977  and  is  the 
largest    "ham"   outing    in    the    deep    south. 

This  year's  event  will  feature  a  banquet 
Saturday  night  with  entertainment,  two 
days  of  commercial  exhibits,  flea  markets 
and  forums.  There  will  also  be  a  hospitality 
room,  ladies' events,  FCC  examinations  and 
more. 

This  year's  grand  prize  is  a  complete 
Drake  "C-Line"  ham  station,  and  many  door 
prizes  will  be  awarded  each  day. 

Information  on  tickets,  room  reserva- 
tions, etc,  will  be  furnished  upon  request 
by  contacting  the  New  Orleans  Hamfest/ 
Computerfest,  POB  10111,  Jefferson  LA 
70181. 

Important  Notice  to  Clubs 

Hazeltine  Corporation,  Greenlawn  NY 
11740,  has  recently  circulated  a  letter  from 
Frank  J  Cirillo  of  their  Industrial   Products 


Division,  announcing  a  special  package 
price  of  $1400  for  refurbished  H-2000 
model  terminals  with  Hazeltine  tape  cas- 
sette drive.  The  letter  is  directed  to  com- 
puter clubs,  so  if  your  local  club  did  not 
receive  a  copy,  write  or  call  Mr  Cirillo  at 
(516)  261-7000  and  inquire  about  this 
excellent  deal.  This  terminal  is  one  of  the 
world's  largest  selling  video  display  terminals 
and  has  had  application  in  universities, 
hopitals,  business,  finance  and  government. 
At  a  $1400  price  you  get  a  used  commercial 
grade  piece  of  equipment  which  will  prove 
quite  applicable  to  many  home  computer 
situations." 

Would  your  club  benefit  from  a  write-up 
in  BYTE's  Clubs  and  Newsletters  section? 
It's  easy  enough  to  arrange,  just  drop  a  line 
to  BYTE,  70  Main  St,  Peterborough  NH 
03458,  c/o  Clubs  and  Newsletters,  with  the 
information  you  'd  like  published.  Naturally 
we  can't  cover  every  club  every  month  but 
we  do  make  a  special  effort  to  mention  new 
clubs  and  those  that  correspond  regularly. 

Those  people  looking  for  a  more  com- 
plete listing  of  computer  clubs  should  refer 
to  January  1977  BYTE* 


The  Speakeasy 


Interface  all  your  I/Os  with 
one  low-cost  board! 


Talk  about  easy  interfac- 
ing for  your  Altair,  IMSAI 
or  Equinox  100!  Plug  in 
The  Speakeasy'1''"  interface 
board  and  you've  got  3 
cassette  I/O  channels  with 
individual  motion  control 
...  a  bi-directional  parallel 
port  for  keyboard,  paper 
tape  reader  or  printer  .  .  . 
a  serial  port  for  teletype/ 


RS232  . . .  and  RAM/ROM 
software  to  drive  it  all. 
$120  kit  by  Morrow's 
Micro-Stuff  ($4  handling; 
Cal.  Res.  add  tax.  Write 
for  specs. 

Thinker 

505  Arlington 

Berkeley,  CA 
94707 


Tbys 


See  it  at  your  local  computer  shop,  or 
place  BAC/MC  orders  toll-free  to  800-648-5311 


TheWunderBuss 


End  noise  and 
cross-talk  with 
our  exclusive 
Noiseguard 
system 


Build  your  S-100  system 
on  the  WiinderBuss™  20- 
slot  bus-board  with  Noise- 
guard™  and  you'll  get 
"textbook  clean  "signals. 

The  Noiseguard™  sys- 
tem's interlaced  ground 
system  shields  all  bus  lines 
from  cross-talk . . .  and  low- 
power  active  termination 
absorbs  noise  and  signal 
reflections. 

The  printed  circuit 
board  is  double-sided  and 
(of  course)  has  a  solder 
mask.  And  there's  3  un- 


committed positions  for 
peripheral  power. 

The  incomparable  Wiin- 
derBuss™, by  Morrow's 
Micro-Stuff,  is  now  avail- 
able for  $76  alone.  With  10 
edge  connectors,  $120. 
With  20  edge  connectors' 
$154.  Add  $4  handling. 


Thinker 
Tbys 


505  Arlington 
Berkeley,  Ca. 
94707 
See  it  at  your  local  computer  shop 

Place  credit  card  orders  toll-free  to  800-648-5311 


165 


Circle  81  on  inquiry  card. 


Programming  Quickies 


Gregory  A  Worth 
115  Campbell,  Apt  6 
Rochester  Ml  48063 


BASIC  Timing  Delay 

When  writing  game  programs  it  is  often 
convenient  to  have  a  time  delay  to  add  some 
exciting  real  life  feeling  to  the  game.  This 
subroutine,  submitted  by  Gregory  A  Worth 
and  written  for  a  Motorola  6800,  will 
cause  delays  between  7  and  255  seconds. 
Register  B  is  loaded  with  the  number  of 
seconds  you  wish  to  delay  before  jumping 


to  the  subroutine.  LOOP!  is  the  basic  time 
delay  loop.  This  loop  takes  20  clock  cycles 
and  is  executed  50000  times  giving  a  basic 
timing  unit  of  7  second,  assuming  a  7  MHz 
processor  clock  is  used.  If  your  system  is 
using  a  different  clock  speed,  appropriate 
adjustment  of  either  the  number  of  repeti- 
tions of  the  loop  or  the  amount  of  time 
consumed  in  one  pass  through  the  loop 
will  have  to  be  made.  The  outer  loop, 
LOOP2,  allows  the  varying  time  delays  by 
repeating  the  1  second  loop  the  number 
of  times  specified  in  register  B.  A II  of  the 
numbers  In  this  listing  are  in  hexadecimal 
unless  otherwise  specified. 


Address    Hex 


0000 
0003 
0006 
0009 
000C 
000  D 
000  F 
0010 
0012 
0015 
0016 
0018 


FF 
CE 
76 
79 
09 
26 
5A 
26 
FE 
39 


Code 

00  16 
C3  50 
00  03 
00  03 

F7 

F1 
00  16 


Labels 

DELAY 
LOOP2 
LOOP1 


SAVE 


Op 

STX 

LDX 

ROR 

ROL 

DEX 

BNE 

DECB 

BNE 

LDX 

RTS 

RMB 

END" 


Operand 

SAVE 
C350 
LOOP2 
LOOP2 

LOOP1 

LOOP2 
SAVE 


Commentary 

save  the  number  of  seconds  to  be  delayed; 
load  X  register  with  decimal  50000; 


basic  1  second  timing  loop 
considering  1  MHz  clock; 


decrement  number  of  seconds  delayed; 

if  delay  not  over  continue  LOOP2; 

restore  value  of  delay  time; 

return  to  calling  program; 

storage  for  number  of  seconds  delayed; 


[g  cybercom  boards 


MB-1  MK8  Computer  System  Ram  4Kx8.  Not  lor  S-100 

Buss.  PC  Bd $22 

MB-4Altair88004Kx8or8Kx8with  Piggy  Back.  PC  Bd.  $30 

MB-3  4K  1 702A  EPRAM  kit  w/o  PROM $65 

MB-6  PC  Bd.  8Kx8    $35 

IO-2  10  for  8800  8  Bit  Parallel  I/O.  2/3  Kludge  Area. 

PC  Bd. . . .  $25        Kit . . .  $55 

64  x  1 6  VIDEO  BOARD  Altair  plug  compatible  display  32  x 

16  or  64  x  16  switch  selectable.  Composite  and  parallel 

video  ports,  upper  and  lower  case  with  software.  PC  Bd. . . . 

$35         Kit . .  .  $189.95 

SP-1  Synthesizer  Board  Computer  controlled  wave  forms 

9  octaves  1vrms  V2%  distortion  includes  high  level  music 

language.  Kit   $250 

Altair  Compatible  mother  board .  Room  for  1 5  connectors 

11"  x  11  Va"  (w/o  connectors) $45 

With  15  connectors $105 

Altair  Extender  Board  (w/o  connectors)  $9.00 

With  w/w  connector  $13.50 

1 00  Pin  spec  WW  or  Soldertail  both  lit  Imsai  or  SSM  Mother 
Board  $5.00  each  10/$44, 

WALNECO8Kx8Ram2102typefully  buffered.  PC  Bd.  $30 
WALNECO  Mother  Bd.  terminated  12  slot  '/a"  thick  .  .$40 


419  Portofino  Drive 
San  Carlos,  California  94070 

Pleas*  sand  lor  xlntor,  IC  and  kit  list 


*  21 02 AL-4  FULL  SPEED  MEMORY  (500ns)  * 

*  Nearly  Vi  less  power  consumption  of  even  a         * 

*  21L02A  PRIME  FROM  NEC 


•  $2.00  EACH 
64 -$1.70 


32  FOR  $1.80  EACH 
128  FOR  $1.60  EACH 


1702AEROM 

programming  send  hex  list 
AY5-1013  UART 

2513  Prime  spec,  upper  or  lower  case 
8080A  Prime  CPU 
8212  Prime  latch  buffer 
8224  Prime  clock  gen 
8228  Prime  sys  controller 


82S06 

82S07 

82S12 

82S17 

82S23 

82S123 

MM5309 

MM5312 

MM5313 

MM5320 

MM5554 

MM5556 

MM5055 

DM8836 

DM8837 

91L02APC 

32  ea. 

64  ea. 


2.00 
2.00 
2.00 
2.00 
2.50 
3.00 
8.00 
4.00 
4.00 
5.95 
1.90 
2.50 
1.90 
.60 
1.50 
2.10 
1.95 
1.80 


82S126 

82S129 

82S130 

82S131 

74S206 

MM5262 

7489 

74200 

74S89 

74C89 

74L89 

8T80 

8T97 

INTEL 
8216 
8214 
8251 
8255 


3.50 
3.50 
3.95 
3.95 
2.10 
1.00 
2.00 
4.95 
3.50 
3.50 
3.50 
2.50 
2.00 

4.95 
8.30 
14.50 
14.50 


74C200 

8573 

8574 

8575 

8576 

8577 

8578 

1101 

1103 

2101 

2112 

2602 

4002-1 

4002-2 

8131 

M04044 

1488 

1489 

2111-1 


$  8.00 
5.00 
6.95 
11.00 
25.00 
4.00 
5.00 
8.90 
5.50 
4.50 
5.50 
4.50 
4.50 
3.50 
4.00 
1.25 
1.25 
4.50 
4.50 
1.60 
7.50 
7.50 
2.50 
2.25 
1.50 
1.50 
3.75 


For  large  orders  please  send  money  order  or  cashier's 
check  to  avoid  delays  in  waiting  for  check  to  clear. 
Check  or  money  order  only.  California  residents  add  6% 
tax.  All  orders  postpaid  in  U.S.  All  devices  tested  prior  to 
sale.  Money  back  30  day  guarantee.  Sorry  we  cannot 
accept  returned  ICs  that  have  been  soldered  to.  $10 
minimum  order.  Prices  subject  to  change  without  notice. 


The  Proko  Paper  Tape  Reader 

A  fully  TTL  buffered  optical  tape  reader  for  reading  8-level 
paper  tape.  It's  compatible  with  nearly  all  parallel  input 
ports  and  has  bolh  positive  and  negative  strobe  outputs. 
The  power  (+5V  @  20ma)  is  derived  from  your  I/O 
board. ..just  supply  a  light  source  (study  lamp),  grab  the 
tape  and  pull! 
PTR-II  Kit  $54.00  Assembled  $68.00 

Now,  add  mass  storage  to  your  micro  with  the  North  Star 
floppy  disk  system.  Comes  with  cables,  S-100  controller 
with  bootstrap  rom,  and  powerful  extended  basic.  (Basic 
supports  sequential  and  random  access  disk  files.) 

North  Star  Disk  Kit $699 

IMSAI  8060  Kit  with  22  slots $650 

IMSAI  with  disk    $1325 


I     The  S.D.  Sales  Co. 
Z-80  CPU  Kit 

For  S-1 00  Buss 


i  $14900 


proko 

tronics 

439  marsh  street 

san  /ills  oblspo,  California  93401 

805/544/5441 


Delivery:  Slock  to  45  days  Irom  receipt  of  order.  We  pay  all  U.P.S. 
shipping  on  U.S.  orders.  Check  or  money  order  accepted.  No  P.O. s 
except  oy  above  terms.  California  residents  add  6%  tax.  Prices 
subject  to  change  without  notice. 


Circle  82  on  inquiry  card. 


166 


COMPUTER- 
WAREHOUSE 
STORE 


DEPT  B  •  P.O.  BOX  69 •  KENMORE  STATION  •  BOSTON,  MA.  0221 5  •  617  -261  -  2700 


SPECIAL  DISCOUNTS/ 

ON  KITS  &  ASSEMBLED  UNITS 

SAVE   UP  TO  20%  OFF  KIT  PRICE  WHEN  A  PERIPHERAL   IS 
PURCHASED  AT  THE  SAME  TIME   (S200  MAXIMUM  DISCOUNT; 

PERIPHERAL(S)  OVER  $900^  20%'OFF  KIT  PRICE 
PERIPHERAL^)  OVER  $250^  10%  OFF  KIT  PRICE 
PERIPHERAL(S)   OVER     $95^      5%  OFF  KIT  PRICE 


KITS 


SCAMP  KIT 

FROM  NATIONAL 
SEMICONDUCTOR  $99 
KEYBOARD  KIT. ..$95 


LEAR  SIEGLER  ADM-3A 

WITH   CURSOR   CONTROL 

•  12"   CRT  «RS232 

•  2«  LN  x  80  CHAR 
•20  mA  LOOP 

KIT $875 

+   $25   SHIPPING 


IMSAI  8080  MICROKITS 


IMM  ROM  CONTROL  KIT       LOW  POWER  DYNAMIC  MEMORY 
EXPANSION  TO  I  MEG.      BOARDS 

KIT S299  32K  RAM  BOARD KIT  S  T<3 

ASSEMBLED 399  ASSEMBLED   1099 

16K  RAM  BOARD KIT   499 

ASSEMBLED   679 


8O8OA  KIT  5  SLOT. .. 
8080A  KIT  22  SLOT.. 

4K  MEMORY  KIT 

PIC-8  PRIORITY  INT. 
SERIAL  I/O  KIT 


..699 
..751 

..  139  PROM  4-512  KIT 165 

..  125  UCRI-1  KIT 59 

..125  CABLE  A  KIT 18 


VIKING  100  PIN  CONNECTORS,  HEAVY  DUTY S3. 00 


SWTPC  6800 

•  512    BYTES    OF    ROM 

•  RS232  OR  20  mA 

MPA 145  MPB S  40 

MPC 40  MPD 35 

MPE 14.95  MPF 37.50 

MPM 65  MPMx 35 

MPP 42.50  MPL 35 

MPS' 35  MPAb...l4.50 

KPMb 14.50 

4K  memory — sioo 

CT   64   TERMINAL   KIT..      325 


.   •  •  $J7J 


•SERIAL    INTERFACE 
•  4K  RAM 

MPCb.MPSb.MPLb,    EACH   9.50 
4KBA 5.00 

GT61 99 

AC30  AUDIO  INTERFCE  79-50 

CTP 15.50 

CTS 39.95 

CONNECTOR  SETS 

-MPU/MEMORY  2.50 

-INTERFACE  2-00 

PP40  PRINTER  250 


SMOKE  SIGNAL  BROADCASTING  I6K  RAM $595 


THOUSANDS  OF  KITS  &  PERIPHERALS 


HAZELTINE  1000 
$795 


35  lb  SHIPPING 
12 


VIDEO  DISPLAY  TERMINAL 
LINES  X  80  CHAR.  5x7 
MATRIX,  525  LINE  RAS 
TER.  BUILT  &  TESTED; 
PLUG  8  GO! 


GREEN   PHOSPHOR 

VIDEO  MONITOR 

$150     +   $25   SHIPPING 


16  MHz   BANDWIDTH,   STANDARD  RASTER 
SCAN,   24   LINES   X  80  CHARACTERS,   ONE 


ALL  an  ASR33  is 
and  MORE       $875 

+   165   lb  SHIPPING 
OLIVETTI   TE318  -   RS232   INTERFACE,    10  CPS, 
BUILT-IN  PAPER  TAPE,   ELECTRIC  TYPEWRITER 
KEYBOARD  W/  ADDITIONAL   10  KEY   NUMERIC  PAD, 
YOUR  CHOICE  SPROCKER  OR   FRICTION   FEED. 


COPE  1030 


BUILT  UNITS 


ICOMlMICROFLOPPIES 
..  $1095 

649 


PLUG  COMPATIBLE  FOR  SIOO  BUS. ..F024I1 . . 

SINGLE  Dr.  I VE FD2402.  . 

ICOM  FLOPPIES: 

FF36-I     FRUGAL 1  1  95 

FF36-2    DUAL  FRUGAL 1895 

360-58    BUILT;  INTERFACE  8080 300 

S171      POWER  SUPPLY 250 

FD360-2-5  DUAL  SYSTEM   3000 

FD37H     DESK  TOP  SINGLE  FLOPPY  SYSTEM 2350 

FD37I2    DESK  TOP  DUAL 2650 

KIM-1  6502 $245  INTERCEPT  JR;«p8°n 

KIM-2    4K 179     FROM    INTERSIL,  INC 


CHIP! 


KIM-3  8k 289 

MANUALS   PACKAGE 15 

TARBELL   AUDIO   CASSETTE 
KIT 120 


12K  RAM 145 

ROM/PROM  BOARD 74.65 

(YOU  AOD  MEMORY  CHIPS) 

SERIAL  I/O 81.50 

AUDIO  VISUAL  BOARD..   125 


IBM  2741  COMPATIBLE  -  "SELECTRIC  BASED"  PORTABLE 
CONVERSATIONAL  DATA  TERMINAL,  PRINTS  UP  TO  15  CPS. 


SEND  $1  FOR  OUR 
MICROCOMPUTING  CATALOG 


THE  ONLY  ONE  OF  ITS  KIND!!  FULL  DETAILS  ON  OUR 
COMPLETE  LINE  OF  KITS  AND  UNITS,  REVIEWS  OF  OVER 
150  BOOKS,  LISTS  OF  NEW  AND  SURPLUS  PARTS  AND 
"ALL  ABOUT  HOBBY  MICROCOMPUTERS"--  AN  INTRODUC- 
TION TO  PERSONAL  COMPUTING. 


TO  ORDER  EQUIPMENT 


1. ENCLOSE  CHECK  FOR  FULL  PRICE  PLUS  SHIPPING  CIWRGES 
(KITS  -  ADD  $5  IF  UNDER  $100;'  $10  IF  OVER) 
VISA  (BANKAMERICARD)  &  MASTER  CHARGE  ACCEPTED  - 
SEND  CARD  #,  EXPIRATION  DATE,  INTERBANK  # 

2. CLEARLY  IDENTIFY  SHIPPING  ADDRESS 

.3. DESCRIBE  ITEM  BY  MODEL  NUMBER 


4or  6  Digit  Alarm  Clock  Kit 

Features: 

A.  Fairchild  0.5"  FND500  Series  Display 

B.  Display  Board  may  be  remote 

C.  P.C  Boards,  Transformer,  Speaker  and  all  the 
parts  needed  (less  case). 

D.  Detailed  Instructions 

12   Hr.-6-Digit  $16.50,  with   10  min.  timer  $25.50 

with  timer  and  crystal  time  base  $29.50 
4-Digit  $14.95     6-Digit-24  Hr.  $14.95    (no   alarm) 


0.8"  4  Digit  Jumbo  Display  Alarm  Clock  Kit 

Features: 

A.  Fairchild  0.8"  FSC8000  Display  Array 

B.  Fairchild  Super-Chip  -  F-3817PC 

C.  P.C.  Board,  Transformer,  Speaker  and  all 

parts  included  (less  case) 

D.  Detailed  Instructions  $19.50 


BOWMAR  SLIDE  RULE  CALCULATOR 

Features: 

A.  8-Digit  Display       C.  Comes  with  Batt.  Charger 

B.  Build-in  Nl-Cad  Batt.        D.  One  full  year  warr. 

ONLY  $32.00  (Limited  Quantity) 


POWER  SUPPLY  KITS 

5V  10A  with  OVP  (Less  Case,  X'former,  $7.95 

Rect.&Capl-with  X'former,  Rect.&Cap  $16.50 

2-20V  1 ,3A    continuously    adjustable   with  current 

limiting.  Includes  Transformer,  P.C.  Board, 
2N3055,    Heat    sink,    and    everything    but    the 

case.  $10.95 


BOURNS  MINIATURE  TRIMMERS 

3292X       2K       55«ea.or       10  for  $5.00 
330PP        2K       75.  ea.  or       10  for  $6.75 


4"  MUFFIN  FAN-Slightly  Used-$5.00 

All    in   perfect    Condition.  Satisfaction   Guaranteed 


MINIATURE   SLIDE  SWITCH 

DPDT  .20  each 

10  for  $1.75 

100  for  $15.00 


INTER-COM  BOARD 

Fully  assembled. 

Works  on  9-15V  D.C. 

2  speakers  make  it  work. 

With  Schematic 

ONLY  $3.00 


ZENER  DIODES 


5V 

14V 

15V 

IN2979    15V 

IN 3029    24V 

IM3002    75V 


'/2W 

y»w 
y.w 

10W 

1W 

10W 


.12 

.12 

.10 

2.50 

1.25 

2.50 


COMPUTER  GRADE 
CAPACITORS 

18,500/jF  80  V  $4.50 
91,000/uF  20V  $4.00 
100,000/iF  5  V  $2.50 
1.000/J+200    50V      $1.00 


TANTALUM 
CAPACITORS 


1/J35V 

1/U10V 

3.3/J35V 

10/J50V 

22/L/35V 


.15 
.15 
.20 
.35 
.25 


MINIATURE  TOGGLE 
SWITCH 

SPDT  $1.00 

DPDT  $1.25 

DPDT     Center  off     $1 .25 


PUSH  BUTTON  SWITCH 

Red,     White,     green     and 
yellow      30s  ea.      4/$1 .00 


TRANSFORMERS 

All  inputs  110  V  AC 


40  V  CT.  10A 
30V  CT.  20A 
20V  CT.  10A 
24V  1 .3A 
2.4-6.3-9-12V 
28V  CT.  0.6A 


1A4  in  1 


$14.50 
$13.50 
$8.00 
$3.50 
$3.50 
$2.00 


WIRE-WRAP  TOOLS  from  OK 

Hobby  Wrap  -  30  $5.45 

Hobby  Wrap-Model  BW-630  Bat- 
tery Op.  (less  batt.)         $32.95 


OPEN  FRAME  POWER  SUPP. 

12V  @  1.8A  with  OVP  115V  AC 
input  $7.50 

5V@3A  with  OVP  115V  AC 
input  $17.50 


MODULAR  POWER  SUPPLY 

5V  @>  32A  1 1 5V  AC  Input  with 
OVP  (New)  $69.50 

24V  @  12A  115V  AC  input 

(used)  $37.95 

28V  3A  (used)  $19.95 


RECTIFIERS 

IN  4001  .06 
IN4002  .07 
IN4003  .08 
IN4004  .09 
IN4005  .10 
IN4006  .12 
IN4007  .14 


RCA  House  Mark. 

1000V  3A      .40 
600V  5A       .75 
MOTOROLA 
IN1202A       .65 
IN1612  .75 

MDA962-2  1.80 
Bridge100V12A 


THIS  MONTH'S  SPECIALS! 

SN7400  $.12 

LM741CH-TO-5  30 

MH0026C 

(5  MHZ  Clock  Driver)  2.95 
A Y-5-3600I  Keyboard  Encoder  by 

G. I. )with  Spec.  Sheet  10.50 
LM340T-12  .80 

LM340T-5  .80 

AN214-4.5W     Power     I.C.    with 

Spec.  2.95 


PANEL  METERS 

2%"  X  2'A" 

50L1A     $3.50      150/JA     $3.00 

IOOjUA     $3.00     300jUA     $3.00 

154"  X  1K"-50/iA  $4.00 


L.E.D. 

0.25"  Red  25t  10  for  $2.00 
0.25"  Green  30«  10  for  $2.50 
0.125"  Red  20«  10  for  $1.75 
0.5"  FND503CC  $1.00 

0.5"  FND507CA.         $1.00 

0.8"  FSC8000  C.C.         $7.50 


14  Pin 
14  Pin 
14  Pin 
16  Pin 
16  Pin 
22  Pin 
24  Pin 
24  Pin 
40  Pin 


I.C.  SOCKETS 

Lo  Pro 
Standard -Gold 
Wire  Wrap-Gold 

Lo  pro 

Wire  Wrap-Gold 

Lo  pro 

Lo  pro  Open  Frame 

Standard -Gold 
Lo  pro  Open  Frame 


$.30 
.35 
.45 
.35 
.50 
.45 
.45 
1.00 
.55 


Zs 


TERMS:  Money  Back  Guarantee 

CALIF.   RESIDENTS  ADD  G^i  SALES  TAX 

Please  add  $1.00  for  postage  inside  Calif.,  $2.00  for 

Out  of  State,  Overseas  add  10%  of  order.  W^y!^ 

Minimum  Order  $5.00  CO.D.  $20.00  {$1.00  handling) 
STORE  HOURS:  Mon.-Sai.,  10-7.  Sun.  10-3 

PHONE   714/8210234 

ELECTRONIC  SUPPLIES 

2669  W.   LINCOLN    AVE.,   ANAHEIM,  CA.   92601 


SPECIAL  OFFER 

100  STEPS 

PROGRAMMABLE 

SCIENTIST 

#4525 


•  RPN  logic  with  "built-in"  hierarchy  for  increased 
accuracy  and  speed  in  calculating  sequences  involv- 
ing arithmetic,  trigonometric,  logarithmic,  power  or 
exponential  functions.  •  A  rollable  4-level  stack  lets 
you  review  or  use  intermediate  solutions.  •  Eight- 
digit  plus  2-digit  exponent  LED  display  with  full- 
floating  decimal  system.  •  Scientific  notation  for 
increased  mathematical  capacity.  •  Sine,  cosine, 
tangent  and  inverse  trigonometric  functions.  • 
Common  and  natural  logarithms  and  antilogarithms. 

•  Instant  automatic  calculation  of  powers  and  roots. 

•  Single-key  square  root  calculations.  •  Single-key  Pi 
entry.  •  Separate  storage  memory.  Square,  square 
root  and  reciprocal  calculations.  Change  sign  and 
register  exchange  keys.  •  MOS/LSI  solid-state  cir- 
cuitry. •  Includes  3  AA  rechargable  NiCad  batteries. 

MANUFACTURED  IN  USA  BY 

BY  NATIONAL  SEMICONDUCTOR 

ONE  YEAR  UNLIMITED  WARRANTY 

10  DAYS  MONEY  BACK  GUARANTEE 


JVIodel  #4525 @  38.95  _ 
_Model  #4520  @  28.88  _ 

AC  Charger® 4.95 

Case(s)@2.95 

Calc.  Stand® 2.50 


Cal.  Res.  add  6%  tax 
Total  _ 


ALSO  AVAILABLE 

MODEL  #4520  With  the  same  features  as  above  but 
without  programming  capability  @  $28.88.  Acces- 
sories same  price  as  above.  CirC|e  157  on  inquiry  card 


SAME  DAY  SERVICE  IF  PAID   BY  CASHIERS 
CHECK,  MONEY  ORDER  OR  CHARGE  CARD. 


ASC  II  KEYBOARD 
NEW  LOOK     IMPROVED  DESIGN 


$58.00 

This  63  key  ASC  II  Encoded  Keyboard  kit  was 
designed  and  manufactured  by  Electronics  Ware- 
house Inc.  Features:  Single  5  volt  D.C.  supply, 
utilizing  onlyTTL  Logic  elements  (no  MOS  devices 
to  blow).  TTL  drive  capability  (each  of  the  eight  bits 
of  ASC  II  output  will  drive  the  equivalent  of  ten 
standard  TTL  inputs  without  external  buffer  drivers), 
de-bouncing,  upper  and  lower  case  fully  ASC  II,  8 
bit  parallel.  In  addition  to  the  alpha-numeric  and 
symbol  keys  available  on  a  regular  keyboard,  the 
following  keys  are  utilized:  Escape,  back-space, 
tab,  line-feed,  delete,  control,  shift-lock,  shift  (2 
keys),  return.  All  1 28  ASC  II  characters  are  generat- 
ed. 

Kit  includes:  63  key  keyboard,  P.C.  board,  all 
required  components  and  assembly  manual  with 
ASC  II  code  list. 

Optional:  Parity  bit  -add  50$  •  Enclosure -$25.00 
•  Serial  output  -  add  $2.00  •  1 8  Pin  edge  connector 
-  $2.00  •  Sockets  -  $4.00 

Note:  If  you  already  have  this  teletype  keyboard 
you  can  have  the  kit  without  it  for  $39.00.  Dealer 
inquiries  invited. 


FROM  CONCORD 

THE  FIRST  FULL  FEATURE 
LSI  DMM  KIT 

INTRODUCTORY  PRICE 


77 


Reg.  Suggested  Retail:  $149.00 

AUTO  RANGING 

AUTO  POLARITY 

AUTO  ZERO 

3  Large  Digits  (1/2") 
Rechargable 


77 


MEASUREMENT  RANGES: 

Voltage:  (AC &  DC)  1  MV-  1000V 
Current  (AC  &  DC)  10JUA-  1A 

RESISTANCE    1Q-10MQ 
Basic  D  C  Accuracy,  better  than 
0  1%  *  1  Digit 

Power  4  AA  batteries  (Recharg 
able  batteries  optional) 


NICAD  BATTERIES:  $6.00  •  AC  CHARGER:  $4.95  •  ENCLO- 
SURE: $12.95  •  TEST  LEADS:  $1.95  •  SHUNT  KIT  FOR  3 
CURRENT  RANGES:  $4.75  •  SOCKETS  $2.50 


ORDERING  INFORMATION 

SHIPPING  AND  HANDLING  -  $3.00  +  50?  Insurance 
California  residents  add  6%  sales  tax 

ELECTRONICS  WAREHOUSE  Inc. 

1603  AVIATION  BLVD.  Dept.  B 
REDONDO  BEACH,  CA.  90278 

TEL.  (213)376-8005 
WRITE  FOR  FREE  CATALOG 

You  are  invited  to  visit  our  store  at  the  above  address 


Circle  85  on  inquiry  card. 


COMPUTERS:  circle  desired  kits, 
men  show  this  ad  to  your  owner. 


r 


1   Active  Terminator  Board  $25 

•Plugs  into  your  S-lOO  bus  to  actively  terminate  lines 

•Minimize  the  crosstalk,  noise,  overshoot,  and  ringing  you  can  find  on  improperly 
terminated  busses 


"* 


2  MOTHERBOARD(S) 

•  Prices  include  edge  connectors 


10  Slots:  $85 
18  Slots:  $118 


Includes  active  terminations  for  unambiguous  data  transfer 
Uses  glass  epoxy ,  plate-through,  double  sided  board 


3  8K  EconoRAM  II      $163.84 

•  Low  current  drain,  zero  wait  states  (1  wait  with  Z-80) 

•  Tri-state  outputs  mate  with  any  type  of  bus 

•  Configured  as  two  separate  4K  blocks  (with  fully  independent  protect  and  address 
decoding  to  increase  flexibility) 

•  Includes  low  power  Schottky  support  ICs  and  full  buffering 


4  4KEconoR0M 


$265 


•  NEW  AND  IMPROVED better  listings;  SP  and  PSW  now  implemented  for  more  flexi- 
bility.  Find  out  why  Jay  Bell,  editor  of  Print-Out,  said: 

"Without  a  doubt,  this  board  is  the  best  buy  I  have  made  for  my  Altair  8800 
out  of  the  $5000+  I've  spent."    (Print-Out,  September  1976  issue) 

Now  you  can  have  editor,  assembler,  and  monitor  routines  that  make  the  8080  a 
much  nicer  chip  to  work  with. 


5  CPU  Power  Supply 


$45 


•  5  Volts  @  4  Amps  with  crowbar  overvoltage  protection 

•  +12  Volts  @  %  Amp  and  -12  Volts  @  %  Amp 

•  Adjustable  bias  supply,  5  to  10  Volts  at  10  mA 

•  Intended  for  use  with  small  computer  systems  or  as  digital  bench  supply 


CAVE 

:  irar* 


J 


BILL  GODBOUT  ELECTRONICS 
BOX  2355,  OAKLAND  AIRPORT,  CA  94614 


TERMS:  Please  allow  up  to  5%  for  shipping;  excess  refunded.  Californians 
add  sales  tax.  Street  address  must  be  included  for  COD  orders.  Place 
BankAmericard'B  and  Mastercharge®  orders  ($15  minimum)  by  calling  our  24 
hour  order  desk  at  (415)  562-0636. 

FREE  FLYER:  Just  give  us  the  word  and  we'll  send  out  a  copy  of  our  flyer, 
which  describes  our  complete  line  of  products  in  greater  detail. 

Circle  86  on  inquiry  card. 


'  H'rnrmi  /400NTTL 


SN7400N 

SN74Q1N 
SN7402N 
SN7403N 
SN74Q4N 
SN740SN 
SN7406N 
SN7407N 
SN7408N 
SN7409N 
SN7410N 
SN7411N 
SN7412N 
SN7413N 
.  SN7414N 
SN7416N 
SN7417N 
SN7420N 
SN7421N 
SN7422N 
SN7423N 
SN7425N 
SN7426N 
SN7427N 
SN7429N 
SN7430N 
SN7432N 
SN7437N 
5N743BN 
SN7439N 
SN744QN 
SN7441N 
SN7442N 
SN7443N 
SM7444N 
SN7445N 
SN7446N 
SN7447N 
SN7448N 
SH7450N 
SN7451N 
SN7453N 
SN7454N 


SN7459A 

SN7460N 

SN7470N 

SN7472N 

SN7473N 

SN7474N 

SN7475N* 

SN7476N 

SN7479N 

SN7480N 

SN74B2N 

SN7483N 

SN7485N 

SN74B6N 

SN74B8N 

SN7489N 

SN7490N 

SN7491N 

SN7492N 

SN7493N 

SN7494N 

SN7495N 

SN7496N 

SN7497N 

SN741D0N 

SN74107N 

SN74121N' 

5N74122N 

SN74123N 

SN74125N 

SN74126N 

SN74132N 

SN74136N 

SN74I41N 

SN74142N 

SN74143N 

SN74144N 

SN74145N 

SN74147N 

SN74148N 

SN74150N 

5N74151N 

SN74153N 


SN741MN 
SN74155N 
SN74156N 
SN74157N 
SN74160N 
SN74161N 
SN74163N 
SN74164N 
SN74165N 
SN74166N 
SN74167N 
SN74170N 
SfJ74172N 
SN74173N 
SN74174N 
SN74175N 
SN74176N 
SN74177N 
SN74160N 
SN74181N 
SN741B2N 
SN74184N 
SN74185N 
SN74186N 
SN74187N 
SN74188N 
SN74190N 
SN7419IN 
SN74192N 
SN74193N 
SN74194N 
SN74195N 
SN74I96N 
SN74197N 
SN74198N 
SN74199N 
SN74200N 
SN74279N 
SN74251N 
SN74284N 
SN74285N 
SN74367N 

MANY  OTHERS  AVAILABLE  ON  REQUEST 
20%  Discount  for  100  Combined  74O0's 


2.49 


4.00 


15.00 
6.00 
3.95 


CD4000 
C04001 
CD4Q02 
CD4006 
CO4O07 
C04009 
CD4010 
CD401 I 
C04012 
CD4013 
CD40I6 
(94017 
C04019 
CO4O20 
CD-5022 
CD4023 
C04Q24 
CO-1025 
CD-1027 
CD4028 
CD4029 
-   CO4O30 


25 


CMOS 


.65 


CO4035 

CD4040 

CD4042 

C040J4 

CD40-16 

CD4047 

CO4049 

CD4050 

CD-1051 

CD4053 

CD4060 

CD4066 

CD-IQ69 

CO4071 

CD4081 

CD4511 

CD45I8 

MC14566 

74C0ON 

nam 


74C04N 

74C10H 

74C2DN 

74C30N 

7JC42N 

74C73N 

74C74 

74C90N 

74C95H 

74C107N 

74C15I 

74CI54 

74C157 

74C160 

74CI6I 

74C163 

74C164 

74C173 

74CI93 

74C195 

MC4044 

MCUQ16 


L.M3UDH  BO 

LM301H  35 

LM301CN  .35 

LM302H  75 

LM304H  1.00 

LM305H  .95 

LM307CN  35 

LM308H  100 

LM30BCN  100 

LM309H  1.10 

LM309K  99 

LM310CN  1  15 

LM3I1H  .90 

LM311N  .90 

LM318CN  1.50 

LM319N  1.30 

LM320K-5  1.35 

LM32QK-5.2  1.35 

LM320K-12  1.35 

LM320K-15  1.35 

LM320T-5  1.75 

LM320T-5.2  1.75 

LM320T-8  1.75 

LM320T-12  1.75 

LM320M5  1.75 

LM320M8  1.75 

LM320T-24  1,75 

LM323K-5  9,95 

LM324N  1.B0 

LM339N  1.70 

LM34DK-5  1.95 

LM340K-6  1.95 

LM340K-8  1  95 

LM34QK-12  1.95 

LM340K-15  1.95 

LM340K-18  1.95 

LM340K-24  1.95 

LM340T-5  1  75 

LM340T-6  1.75 

LM340T-8  1.75 

LM340T-12  1  75 

LM340T-15  1.75 

LM340M8  1.75 

LM340I-24  1.75 

LM350N  1.00 

LM351CN  .65 


LINEAR 


78MG 

LM370N 

LM373N 

LM377N 

LM380N 

LM380CN 

LM38JN 

LM382N 

NE501K 

NE510A 

NE531H 

NE536T 

NE540L 

NE550N 

NE555V 

NE560B 

NE561B 

NE562B 

NE565H 

NE565N 

NE566CN 

NE567H 

NE567V 

LM703CN 

LM709H 

LM709N 

LM710N 

LM711N 

LM723H 

LM723H 

LM733N 

LM739N 

LM741CH 

LM741CN 

LM741-14N 

LM747H 

LM747N 

LM748H 

LM748N 

LM1303N 

LM1304N 

LM1305N 

LM1307N 

LM1310N 


LM1351N  1.6 

LM1414N  1.7 

LM1458C  6 

LM1496N  9 

LM1556V  18 

LM2111N  1.9 

LM29GIN  2.9 

LM3D65N  6 

LM3900N  .5 

LM3905N  .6 

LM3909  12 

LM5556N  1  B 

MC5558V  1.0 

LM7525N  9 

LM7535N  1.2 

803BB  4.9 

LM  75450  .4 

75451CN  .3 

75452CN  .3 

75453CN  3 

75454CN  .3 

75491CN  .7 

75492CN  .8 

75494CN  .8 

RCA  LINEAR 

CA3013  2.1 

CA3023  2.5 

CA3035  2.4 

CA3039  1.3 

CA3046  1.3 

CA3059  3.2 

CA3060  3.2 

CA3D80  E 

CA3081  2.C 

CA3082  2C 

CA3083  IE 

CA3086  ,( 

CA3089  3( 

CA3091  to.; 

CA3102  2'. 

CA3123  2.1 

CA3130  1.3 

CA3140  1.2 

CA3600  1.7 


RC419 
RC4195 


74LS0O 
74LS02 
74LS03 
74LS04 
74LS05 
74LSD8 
?4LS10 
74LS13 
74LS14 
74LS20 
74LS26 
74LS27 
74LS28 
741S30 
74LS32 
74LS40 
74LS51 
74LS55 
74LS73 


29 


74LS00 


74LS74 

74LS75 

74LS7B 

74LSB3 

74LS85 

74LS86 

74LS90 

74LS92 

74LS93 

74LS95 

74LS96 

74LS107 

74LS109 

74LS11? 

74L513? 

74LS13G 

74LS138 


74LS153 
74LS157 
741S162 
74LS163 
74LS1B4 
74  LSI  75 
74LS1B1 
74LS190 
741S191 
74LS19? 
MIS  193 
74LS194 
74LS195 
74LS257 
74LS260 
74LS279 
7415670 


MM5309 
MM5311 
MM5312 
MM5314 
MM53I6 
MM5318 
CT7001 


CLOCK  CHIPS 

6  Digit.  BCD  Outputs.  Reset  PIN. 

6  Digit,  BCD  Outputs.  12  or  24  Hour 

4  Digit.  BCD  Oulpuls,  1  PPS  Output 

6  Digit.  12  or  24  Hour.  50  or  60  Hz 

4  Digit.  Alarm.  1  PPS  Output 

Video  Clock  Chip,  For  Use  Wtlh  {MM5B41 

6  Digil.  Calendar.  Alarm,  12  or  24  Hour 


1*1 


DATA  HANDBOOKS 

7400       Pin-out  &   Description  of  G400/740O  ICS 
CMOS   Pin-oul  &  Description  ol  4000  Surics  ICS 
-  Linear    Pin  out  &  Functional  Description 
^  ALL  THREE  HANDBOOKS  S6.95 


S2.95 
S2.95 
S2.95 


I 


T201  Slack  Bracelel        S19.95 


3, 


T237  wnim  w/bratelel  S29.95 
TZ36  Vellnw  w/bracelet  S34.95 


Tlmeband  bymmm/w 
—  Watches  — 

Men's  &  Ladies 

•  Solid  State 

•  Displays  hour,  minute, 
second,  month  &  day 

•  Snap-out  battery 
replacement 

•  Free  set  ol  replacement 
batteries 

•  Choose  LED  or  LCD 
styles 

•  One  year  factory 
warranty 


TC441  While  w/slrap      S29.S5 
TC440  Yellow  w.sliau      S34.9S 


T311  While  w/slrap         $34.95 
T310  Velio*  w  slrap        $39.95 


CHANNEL  F 
^"$159.95 


mt/KMMo  nofo effTFurff/tnuem srsm* 

•  Freeze  Action  •  Speed  Option 

•  Automatic  time  and  scorekeeping 
Battery-tree  AC  operation 
Dual  controls  with  8-way  action 
Built-in  Pro  Hockey  and  Tennis  games 
Easy  hook-up  on  any  B/W  or  Color  TV 
Factory  warranty 


Channel  F  —  additional  cartridges  —  $19.95  ea. 

#8112  -  Desert  Fox/Shooting  Gallery  #8113  -  Blackjack  (1  or  2  players) 

#8114  -  Spitfire  (1  or  2  players)  #8115  -  Space  War 

#8111  -  Tic-Tac-Toe/Shooting  Gallery/Doodle/Quadra-Doodle 


XC209 
XC2Q9 
XC709 
XC209 

XC22 
XC22 
XC22 
XC22 
SSL  -22 


125"  ma. 


Orange 
Yellow 
.200"  dia 

Red  i 

Green 
Yellow 
Orange 


.190"  dia. 


Red 


10  SI 


DISCRETE  LEDS 


4.-S1 


XCS26 

Red 

XC526 

Green 

XC526 

Yellow 

XC526 

Orangp 

XC526 

Cleat 

XC556 

Red 

XC556 

Green 

XC556 

Yellow 

XC556 

Orange 

XC556 

Clear 

Green 

Yellow 
□range 

.0B5"  dia. 
MV50  -  Red  -  6  SI 


INFRA-RED  LEO 
'*'  x'.«"xt/16" 
Flat         SfSI.OO 


SPECIAL  *  —  XC556  Red  100/58.00        1000/S60.00  —  SPECIAL  * 

DISPLAY  LEDS 


TYPE 

MAM  1 
MAN  2 
MAN  3 
MAN  4 
MAN  J 
MAN  ?G 
MAN  7Y 
MAN  52 
MAN  G4 
MAN  74 
MAN  8? 
MAN  84 
MAN  3f>20 


POLARITY 
Cnminan  Anode 
S  i  1  Doi  M,mu 
Common  Cathode 
Common  Caihode 
Cofnmon  Anotle 
Cemmoti  Annde-qieen 
Common  Annde-yellow 
Common  Annde-jreen 
Common  Anode-ted 
Common  Ctlliode 
Common  Anode-yellnw 
Common  Catliodc  yellow 


n  Ann 


nrPE 

MAN  3640 
MAN  4r10 
DL701 
DL704 
DL707 
MAN  4-74G 
DL741 
DL  W 
OL  750 
DL  33B 
FND70 
FND503 
TND507 


POLARITY 

Common  CaUtofle-orange 
Common  Anode- Red 
Common  Anode-fed  - 
Common  Caihode 
Common  Anode 
Common  Anooe-Hed 
Common  Anode 
Common  Anode 
Cu"inon  Cainode 
Common  Cathode 
Common  Cathode 
Common  CalrimlR 


5U0      1  00 


FACIORY 

flCJECTS 

BOARD  A-  8V  »  16" 

Over  GO  each  reusable  IC's 
Misc  Transislors,  Reststois. 
Diodes.  Caps.  Ciysiais.  Switch,  etc 

DELUXE  BOARD  B  —    11V*  U 

Over  100  each  reusable  1C  s 
Misc.  Tranislors.  Resislors. 
Diodes,  Caps,  Crystals.  Switches,  LEDS.  etc 


ATARI  GAME  BOARDS 


S6.95  ea. 

ONLY  500  EA 
AVAILABLE 

S9.95  ea. 

ONLY  500  EA 
AVAILABLE 


HP  5082-7300  Multi-Digit  Series 

Va"  Ht.  «  Common  Cathode  •  Dip  Package 
3  to  5  volts  @  5  mils  per  segment 
7  segment  Monolithic  •  Red  Display 

2  Digll  $  .79 

3  Digit  .89 

4  Digit  .99 

5  Digil  1.19 


fC  SOLDERTAIL  —  LOW  PROFILE  (TIN)  SOCKETS 


1Bpin 
22  pin 
It  pin 
16  pin 


10  pin 
14  pin 
16  pin 


t;' SOLDERTAIL  STANDARD  (TIN) 


SOLDERTAIL  STANDARD  (GOLD) 


WIRE  WRAP  SOCKETS  (GOLD)  LEVEL  #3 

24  pin 


50  PCS.  RESISTOR  ASSORTMENTS     $1 .25     PER  ASST. 


ASST.  1 

ASST.  2 
J 
^  ASST.  3 

o 

-ASST.  4 
C/3ASST.  5 


ASST.  7 

ASST.  8R 


10  OHM  12  OHM  15  OHM  IB  OHM  22  OHM 

27  OHM  33  OHM  39  OHM  47  OHM  56  OHM 

6B0HM  32  OHM  100  OHM  120  OHM  150  OHM 

1B0  OHM  220  OHM  270  OHM  330  OHM  390  OHM 

470  OHM  560  OHM  680  OHM  S?0  OHM  1K 


I  2K 
3  3K 


1  5K 

3  UK 


1  BK 
4  /K 


220K 
560K 
1  5M 
3  9M 


2  2K 
5  GK 


?7K 


1/4  WATT  5%        50  PCS, 

GO 

1/4  WATT  5%        50  PCS.  ~& 

I 
1/4  WATT  5%       5D  PCS.] 


1/4  WATT  8%       50PCS. 


Includes  Resistor  Assortments  1  -7(350  PCS.)     $7.49  ea. 


SS.OO  Minimum  Order  —  U.S.  Fundi  Only 
California  Rasldantt  —  Add  6%  Salei  Tsx 


Spec  Sheets  -  25c  —  Send  35c  stamp  tor  1977A  Catalog 
Dealer  Dltcounl  Available  —  Reouett  Pricing 


1021-A  HOWARD  AVE.,  SAN  CARLOS.  CA.  94070 

PHONE  ORDERS  WELCOME  —  (415)  592-8097 

All  Advertised  Prices  Good  Thru  July 


WIRE  WRAP  CENTER 

HOBBY-WRAP  TOOL-BW-630 1 


1\ 

$34.95     * 

Iballenes  no!  mcludeol 


Batteiy  Operated  (Size  C) 
Weighs  ONLY  11  Ounces 
Wraps  30  AWG  Wire  onto 
Standard  DIP  Sockets  (.025  inch) 
Complete  with  built-in  bit  and  sleeve 


WIRE-WRAP  KIT  —  WK-2-W 
WRAP  .  STRIP  .   UNWRAP 

•  Tool  tor  30  AWG  Wire 

•  Roll  of  50  Ft.  White  or  Blue  30  AWG  Wire 

•  50  pes.  each  1".  2".  3"  S  4"  lengths 
pre-stripped  wire. 


$11.95 


WIRE  WRAP  TOOL  WSU-30 

WRAP  .  STRIP  .  UNWRAP- 15.95 


WIRE  WRAP  WIRE  —  30  AWG 

25ft.  min.  $1.25    50tl.S1.95    100ft.  S2.95     1000h.S15.00 
SPECIFY  COLOR  —  White  -  Yellow  -  Red  -  Green  -  Blue  -  Black 


Plastic  Push  Button  Switch 

'  IS  AWG  Solid  Wire  -  5"  Long 

'  .50  (wide)  X  .60  Irtish)  '■•-21  Thread 

'  8  AMP  @  14  Volt  -  1  AMP  f§  .10  Volt 

1-9  10-Up 

J-188-1        Push  On-Push  Off    .59  .49 

J-188-2        Normally  Open  59  .49 

J-188-3        Normally  Closed       .59  .49 


DIP  SWITCHES 

SPST  Slide  Action 

#206-4      (  8  pin  dip)     A  switch  unit   $1.75  ea. 

#206-7     (14  pin  dip)     7  switch  unit   $1.95  ea. 

1  #206-8      (16  pin  dip)      8  switch  unit    $2.25  ea. 


TV  GAME  CHIP  SET  — $18.50 

Includes  AY-3-8500-1  chip  and  2.010  mhz  crystal  — 
if  purchased  separately  would  cost  S21.90. 


TYPE 

1\746 
1N751A 
IN  752 
1N753 
1N754 
1N959 
1N965B 
IN5332 
1N5234 
1N5235 
1N5236 
IN456 
1N4SB 
1N4BSA 
1N4001 
1N4O03 
1N4003 
IN40O4 


ZENERS  - 

VOLTS  W 

3.3  400mm 

5  1  400m 
5.6  400m 
6.2  400m 

6.5  400m 
8  2  400m 
15  400m 

5.6  500m 

6  2  500m 
6.B  500m 
7.5  500m 
25  40m 
150  7m 
180  10m 

50  PIV  1  AMP 

100  PIV  1  AMP 

200  PIV  1  AMP 

400  PIV  1  AMP 


DIODES  — 

PRICE  TYPE 

4/1  00  1N4005 

4/1  00  1N4O06 

4/1.00  1N4007 

4/1.00  1N3600 

4/1  00  1N414B 

8/100  1M4154 

4/1.00  1N4305 

28  1N4734 

2B  1N4735 
1N4736 


RECTIFIERS 

VOLTS     W 

600  PIV  1  AMP 
800  PIV  1  AMP 
1000  PIV  I  AMP 
200m 


10m 
10m 


10/1.00 
10/1  00 

6/1.00 
1511.00 
12/1  00 
20/1.00 
28 
28 


28 


fJ4738 
1N4742 
6/1  00  1N4744 
6/1.00  1N1183 
12/1  00  1N1184 
12/1.00  1N1185 
12/1  00  1N1186 
12/1.00     1N1188 


1w 


12 

15 

50  PIV  35  AMP 

100  PIV  35  AMP 

150  PIV  35  AMP 

200  PIV  35  AMP 

400  PIV  35  AMP 


SCR  AND  FW  BRIDGE  RECTIFIERS 


C36D 
C3BM 
2N2328 
MDA9B0-I 
MDA  9BO-3 


35A  @  200V 
1  6A@20OV 


FW  BRIDGE  REC 
FW  BRIDGE  REC 


MPS  ADS 
MPS  A06 
2NJU19A 
2M22I 

WIWA 
2N23G3 

2N:>:!i.'M 

2N24B4 
7N23D6A 
2N2907A 
2N2D25 
2N3053 
2N3D55 
MJl31ft!i 
MJE2955 
.  2N3392 
i  2N3398 


5:S I  00 
3,'SI  no 
4/1 1  00 

Mi  oc 


TRANSISTORS         ™«*» 

PM4ES0 
3/S1.00  2N44DO 

4.11  00  2N4401 

■I'SI  00  2N«0? 

musa 


PN3567 
PN3568 
,  PNJ569 
2N3704 
2N37D5 
2N3706 
2N3707 
2N371 1 
2N3724 
2N3725 
2N3903 
2N3904 
2N3905 
?N3M5 
2N4013 
2N4014 


5.'5I  DO  JQ,  2N4J09 

5/SI  00  (T  2N50B6 

S.-S1  00  i  2U5CB7 

BS1  00  [|  |  ZNaOEIS 


2N4123      10  SI  00 


CAPACITOR 


10  pt 
22  p( 

47  pi 
100  pi 
220  pi 
470  pt 

.001ml 
.0022 

0047ml 

01ml 

1  /35V 

.15/35V 
.22/35V 
33/35V 
47/35V 
6B/35V 
1  0/35V 


50  VOLT  CERAMIC 
DISC  CAPACITORS 
1-9      10-49   50-100 
5        .04        .03         OOVF 
5        .04        .03        .0047/^F 
5        .04        .03        .OVF 
5        .04        .03         022MF 
5        .04        .03        .047,iF 


100  VOLT  MYLAR  FILM  CAPACITORS 
.12        .10        .07        .022ml  13 

.12        .10        .07        ,047ml  21 

.12        .10        .07        .1ml  .27 

.12         10        .07        .22ml  33 

+  20%  DIPPED  TANTALUMS  (SOLID)  CAPACITORS 
.28        .23        .17  1.5/35V 


CORNER 


t-9      10-49   50-100 


.26 

.28        .23        .17  2.2/25V         .31         .27 

.28        .23         17  3.3/25V         .31         .27 

.28         23        .17         4.7/25V         .32        .28 
28        .23         17         6.8/25V  36        .31 

.28        .23         17        10/25V  .40        .35 

.2B        .23        .17        15/25V  .63         50 

MINIATURE  ALUMINUM  ELECTROLYTIC  CAPACITORS 


t  0/50V 

3  3/50V 

4.7/25V 

10/25V 

10/50V 

22/25V 

22/50V 

47/25V 

47/50V 

100/25V 

100/50V 

220/25V 

220/50V 

470/25V 

1000/ 16V 

2200/  16V 


.13 


.10 


.47/25V 
.47/50V 
1.0/16V 
1.0/25V 
1.0/50V 
4.7/16V 
4.7/25V 
4.7/50V 
10/16V 
10/25V 
10/50V 
47/50V 
IO0/16V 
10O/25V 
100/50V 
220/ 16V 
470/25V 


Radial  Lead 
15 


/ -^(CRYSTALS 


( as 


pm#" 

CV1A 

CV2A 
CV3A 
CV7A 
CY1ZA 
CY14A 
CY19A 
CY2ZA 
CY30B 


[THESE  FREQUENCIES  ONLY 


Frequency 
1.000  MHz 
2.000  MHz 
4.000  MHz 
5.000  MHz 
10.000  MHz 
14.31818  MHz 
18.000  MHz 
20.000  MHz 
32.000  MHz 


Casa/Style 

HC33/U 
HC33/U 
HC18/U 
HC18/U 
HC18/U 
HC18U 
HC18/U 
HC18/U 
HC18/U 


S5.95 
15.95 
S4.95 
S4.95 
S4.95 
S4.95 
S4.95 
S4.95 
S4.95 


XR-2206KB  Kit   $29.95     Special     XR-2206KA  Kit    $19.95 

EXAR 


WAVEFORM 

GENERATORS 

XR.-205  S3  40 

XR-2206CP  A  49 

XP.-2207CP  3  85 

STEREO  DECODERS 
XR-1310CP  S320 

XR-131CEP  3  20 


TIMERS 


S   39 


XH-555CP 

XR-320P 

XR-556CP 

XR-2556CP 

XR-224GCP 

PHASE  LOCKED  LOOPS 

XR-21Q 

XR-215 

XR-567CP 

XR-567CT 


3  20 


r'7<) 


CONNECTORS 

PRINTED  CIRCUIT  EDGE-CARD 

.156  Spacing-Tin-Double  Read -Out 
Bifurcated  Contacts  —  Fits  .054  to  .070  P.C.  Cards 

15/30                        PINS  (Solder  Eyelet)  S1.95 

18/36                        PINS  (Solder  Eyelet)  $2.49 

22/44                        PINS  (Solder  Eyelet)  $2.95 

50/100  (.100  Spacing)  PINS  (Solder  Eyelet)  $6.95 

25  PIN-D  SUBMINATURE 

DB25P                           PLUG  $3.25 

DB25S                         SOCKET  $4.95 


3V2  DIGIT  DVM  KIT 


This  0-2  VDC  .05  per  cent  digital  voltmeter  features  the  Motorola  3%  digit 
DVM  chip  set.  II  lias  a  .4"  LED  display  and  operates  from  a  single  +  5V 
power  supply  The  unit  is  provided  complete  with  an  injection  molded  black  ■ 
plastic  case  complete  with  Bezel.  An  optional  power  supply  is  available 
which  tits  into  the  same  case  as  the  0-2V  DVM  allowing  1 17  VAC  operation. 

A.  0-2V  DVM  with  Case  $49.95 

B.  5V  Power  Supply  $14.95 


Etching  Kits 

32  X  A:1 " 

27  X  A-1 

Plugboards 

3662 

8800V 


©  Peelot 


P  C.  Etch  Materials  Kit 
enough  lor  5  circuit  boards 
Etched  Circuit  Kit 
Complete  kit  —  only  arJO  water 
6.5X4.5  X  1/16  Epoxy  glass 
P-Pattem-44  P.C.  Tabs-spaced  .156" 
Universal  Microcomputer/Processor 
plugboard  —  Epoxy  Glass  —  complete 
with  heatsink  and  mounting  hardware 
5.313  X  10  X  1/16  copper  clad 


$29.95  ea. 
S  9.95  ea. 
S  6.95  ea. 
$19.95  ea. 


1/16  VECTOR  BOARD 


B4P44  062XXXP 
HS9P4-I  02XXXP 
64P44  062 
1I4P44  062 
I6QP4-1  062 
1G9P8J  062 
1E9P4.1062C1 


2 -Up 

3  32 


205-CB  BwyBtui 
291-.36H  Alummu 
680-.75A    .Black  A; 


HEAT  SINKS 


y 


Copper  Meat  Sink  witfl  Gl.ick  Finish  for  TO-5  $  .25 
)  Heal  Sink  lor  TO-220  Transistors  &  Regulators  S  .25 
irwed  Aluminum  $1.60 


HEXADECIMAL  ENCODER  19-KEY  PAD 

.^>.  .1-0 

^.tJOtfct  .  ABCDEF 

ME     ,.;'-:,->;        |jfc       •  Return  Key 

^H  •  Optional  Key  (Period) 


■  Key 


$10.95  each 


63  KEY  KEYBOARD 


Tins  keyboard  leaTut 

r;<!!lfd  SPS1  if.'S   (jtt,iti,i 

any  kind  of  P.C.B   A  ve 

molded  phsnc  13"  t  ~ 
■M;h;  irio:;i  apfjhcr.iinri;, 


63  ur 


$19.95 


MO0165     t6  LINE  TO  FOUR  BIT  PARALLEL  KEYBOARD  ENCODER 


JOYSTICK 

These  joysticks  feature  four  * 
potentiometers,  that  vary  re- 
sistance proportional  to  the 
angle  of  the  stick.  Sturdy  metal 
construction  with  plastics 
components  only  at  the  mova- 
ble joint.  Perfect  for  electronic 
games  and  instrumentation. 

*5K  Pots  $4.95 
00K  Pots  $7.95 


MICROPROCESSOR  COMPONENTS 


8212 
8214 
8216 
8224 
CDP1802 


2519 
2524 
2525 
2527 
2529 
2532 
2533 
3341 
74LS67G 


-1013 


CPU 

8  Bit  Input/Output 
Priority  Interrupt  Control 
Bi-Direclional  Bus  Driver 
Clock  Generator/Driver 
with  user  manual 

CPU'S 

Super  8O0B 
Super  BO06 


1024  Dynamic 
Hex  32  BIT 
He.  40  BIT 
512  Dynamic 
1024  Dynamic 
Dual  255  BIT 
Dual  512  BIT 
Quad  80  BIT 
1024  Sialic 
Fita 
16*  4  Reg 


30K  Banc 


S19.95 
4.95 
15.95 
6.95 
10.95 
39.95 


8228      System  Controller  -  Bus  Driver  $10.95 

MC6800L      8  Bit  MPU  35.00 

MC6B20L      Periph.  Interlace  Adapter  15.00 

MC6810AP1  128  x  8  Static  RAM  6.00 

MC6830L7    1024  x  8  Bit  ROM  18.00 

Z80          CPU  49.95 


Sialic  5.95 

Static  1.78 

Dynamic  4.95 

Static  6.95 

Static  2  49 

Sialic  6.95 

Static  6.95 


B599 

16  x  4 

Static 

3  49 

91L02 

102-1-  ' 

St.ttic 

2.25 

74200 

256  x  l 

Static 

6.95 

93421 

256  x  1 

Sialic 

2.95 

IMM52& 

2Kx  1 

Dynamic 

2  for  1.00, 

I70?A 
5203 
B2S23 
B2S123 


OpenC 
Tnstale 


BOM'S 

2513(2140)  Char.  Gea  -upper  c 
2513(3021)  Char.  Gen. -lower  c; 
2516  Char.  Gen 


S  9.95 
995 
10.95 


|2703 
6301-1 
6330-1 
6331-1 


Tri-Slate  Bipolar 
Open  Collector  Bip 
Tri-Slate  Bipolar 


3.95 


3.4"! 
2,95 
2.95 


AY-3-8500-1  ! 

MC3061P 

MC4016P  (744161 

MCI  4583 

MCI  4  562 

CD4059 

CD4070 


SPECIAL  REQUESTED  ITEMS 


CD4508 

C04515 

CD4520 

MCM6571 

MCM6574 

MCM6575 


82S115 
584 1 
MK50?40 


17.50 


17.50 
1995 
3,75 
10.50 


3341 
9368 

MC1408L7 
LD1T0/L01T1 

AY-5-9100 
95H90 


395 

9.95 

25  OO/set 


PARATRONICS 


ALLOW  1  TO  3 
WEEKS  DEUVERY 

Featured  on  February's  Front  Cover  of  Popular  Electronics 


Logic 
Analyzer  Kit 


■  Analyzes  any  type  of  digital  system 
i  Checks  data  rates  in  excess  of  8  million 

words  per  second 
i  Trouble  shoot TTL,  CMOS,  DTL.  RTL, 

Schottky  and  MOS  families 

Displays  16  logic  slates  up  to  8  digits  wide 

See  ones  and  zeros  displayed  on  your 

CRT,  octal  or  hexadecimal  format 

Tests  circuits  under  actual  operating 

conditions 

Easy  to  assemble  —  comes  with  step-by-step  construction  manual 

which  includes  80  pages  on  logic  analyzer  operation. 


MODEL 

100A 

$189.00/Kit 

Some  applications  are: 

—  Troubleshooting  microprocessor 
address,  instruction,  and  data  flow 

—  Examine  contents  of  ROMS 

—  Tracing  operation  of  control  logic 
— •  Checking  counter  and  shift 

register  operation 

—  Monitoring  I/O  sequences 

—  Verifying  proper  system  operations 
during  testing 


® 


BUGBOOK 

Continuing  Education  Series 


BUGBOOK  I  &  II 


BUGBOOK  lla  - 


BUGBOOK  III  - 


Basic  concepts  of  TTL  Logic — over  90 
experiments  $17. 00/set 

Introduces  UART  —  recommended 
tor  RTTY  enthusiast  S5.00/book 

Explores  8080  chip  —  introduces 
Mark  80  Microcomputer       S15.00/book 
555  TIMER  APPLICATIONS  SOURCEBOOK  WITH 
EXPERIMENTS  —  over  100  design  techniques  $6.95/book 
CMOS-M-DESIGNERS  PRIMER  AND  HANDBOOK 
a  complete  CMOS  instruction  manual  $6.00 


Introductory  Offer  —  all  6  books  (worth  $49  95) 
SPECIAL  -  S42.95 


1 


CONTINENTAL  SPECIAL 

PR0T0  BOARD  6 


S15.95 

(6"  long  X  4'  wide) 


Other  CS  Prolo  Boards 

PB10O  -4.5"  x6"  $  19.95 

PB101  -5.8"  x  4.5"  29.95 

PB102  -  7"  x4.5"  39.95 

PB103  -  9  '  x  6"  59.95 

PB104  -  9.5"  x  8"  79.95 

PB203 -9.75  x6V!  x  2%      75.00 
PB203A  -9.75x6'/2x2%  120.00 

(includes  power  supply) 


Logic  Monitor 

lor  DTL,  HTL,  TTL  o 


CMOS  Devices 


*M-95  '  QM3 


IES 


PROTO  CLIPS 

14  PIN  $4.50 

16  PIN  4.75 

24  PIN  8.50 


DESIGN  MATES 

DM1  -  Circuit  Designer 

54.95 
Function  Generator 

69.95 
RC  Bridge 

59.95 


CD  Timebcind      T\ 
Digital  Alarm  Clocks 


C-500  -  ivory  Case 
C-500B  -  Ebony  Case 

$16.95 


i  24-hour  alarm 
»  Doze  Button 
.   100%  Solid  State 
>  Large  Red  Led  Display 

l.B"  hirjh) 
.  AM/PM  indicator 
i  Seconds  display  at  touch 

ot  button 
.  Power  failure  indicator 
i  One  year  factory  warranty 


DIGITAL  AUTO  INSTRUMENT 

SEVEN  DIFFERENT  INSTRUMENTS! 

MEETS  OH  EXCEEDS  ORIGINAL  AUTOMOTIVE  SPECS. 

Please  specify  which  one  of  the  seven  models  you  want 

when  ordering  -  these  do  not  a!!  come  in  one  unit. 

Each  model  must  be  bought  separately. 


TACHOMETER 
1  O-99O0  RPM 

6  or  8  Cyclinders 


FUEL  LEVEL 
3  Percentage 
Low  Fuel  Indicator 


OIL  PRESSURE 
0-80  PSI 


BATTERY  MONITOR 
±1  Volts  From  11-15  VDC 


BRIGHT  YELLOW  ORANGE 
.3"  t  FD  DISPLAY! 

includes  case,  bracket  and  all  components  —  complete. 
Nothing  else  to  buy!  12  Volt  NEG  GFID. 
DIMENSIONS:  4Vj  x4x2  KIT:    $49.95 

Add  $10.00  lor  required  speed  transducer.  ASSEMBLED:    $59.95 


DIGITAL  STOPWATCH 


•  Bright  6  Digit  LED  Display 

•  Times  to  59  minutes  59.59  seconds 

•  Crystal  Controlled  Time  8ase 

•  Three  Stopwatches  in  One 

Times  Single  Event  —  Split  &  Taylor 

•  Size  4. 5"  x  2.15"  x  .90-  [AVt  ounces) 

•  Uses  3  Penlite  Cells. 

Kit  —  $39.95 

Assembled  —    $49.95 
Heavy  Duty  Carry  Case  $5.95 


Stop  Watch  Chip  Only  (7205)        S19.95 


ELECTRONIC  'PENDULUM'  CLOCK 


ft 


•  Swing  Pendulum 

•  .7"  Hours  and  Minutes  Display 

•  12  or  24  Hour  Mode 

•  Time  Set  Push  Buttons 

•  Alarm  Feature 
Kit-unfinished  $59.95 

{case  unassembled) 
Assembled -stained              $69.95 
(case  assembled) 


QUARTZ  DIGITAL  AUTO  CLOCK 
OR  ELAPSED  TIMER! 


Elapsed  Timer:  Hre,  Mint  anil  Sect 

12  or  24  Hr  Capacity 

Simple  Reset  -  Start  Pushbutton 

Control 

Complete  kit  includes  mounting  bracket, 
case  and  all  components,  nothing  else  to 
buy.  Features  MM5314chip:  Large  .4"  LED  s. 
Accuracy  better  than  ±  min.  per  mo.  in:ernal 
battery  backup.  12  volt  non-polar  operation. 
x2' 


Kit:  $29.95 
Assembled:  $39.95 


CASE  ONLY  (includes  hardware,  mounting  bracket  and  bezel)  $6.50 


JE700  CLOCK 

The  JE700  is  a  low  cosl  digital  clock,  but 
is  a  very  high  quality  unit  The  unit  fea- 
tures a  simulated  walnnl  case  with  di- 
mensions of  6"  x  f/t"  X  1'  It  utilizes  a 
MAN72  high  brightness  readout,  and  the 
MM531-I  clock  chip. 

$17.95 


DM2  - 


QT  PROTO  STRIPS 


QT  lyps 

OT-59S 
QT-59B 
QT-47S 
QT-47B 
0T-35S 
OT-35B 
QT-18S 
OT-12S 
QT-BS 
OT-7S 


bus  strip 
350 

bus  strip 


12.50 


2.(10 
4.75 
3.75 


Experimentor  300 
Experimenter  600 


S  9.95 
S10.95 


S5.D0  Minimum  Order  —  U.S.  Funds  Only 
California  Residents  —  Add  6%  Sales  Tax 


Spec  Sheett  -  25c  —  Sand  35c  Stamp  (or  1977A  Catalog 
Dealer  Discount  Available  —  Requett  Pricing 


1021 -A  HOWARD  AVE.,  SAN  CARLOS,  CA.  94070 

PHONE  ORDERS  WELCOME  —  (415)  592-8097 

All  Advertised  Prices  Good  Thru  July 


DIGITAL  CLOCK  KIT  —  3%  INCH  DIGITS 

4  DIGIT  KIT  $49.95  4  DIGIT  ASSEMBLED  $59.95 

6  DIGIT  KIT  $69.95  6  DIGIT  ASSEMBLED  $79.95 

This  dock  features  big  3V?"  high  digits  for  viewing  in  offices,  auditoriums, 
etc.  Each  digit  is  formed  by  31  bright  0.2"  LEO's  The  dock  operates  from 
117  VAC,  has  either  12  or  24  hr.  operation.  The  6  digit  version  is  27"  x 
ZW  x  1  V»"  and  the  4  digit  is  1B"  x  3W  x  114",  Kits  come  complete  wtth 
all  components,  case  and  transformer. 

Specify  12  or  24  Hour  When  Ordering 


JE803  PROBE 

The  Logic  Probe  is  a  unit  which  is  lor  Ihe  mosl  pan 
indespensinle  m  trouble  shooting  logic  families 
TTL.  OTL.  RTL.  CMOS  It  derives  the  power  il 
s  to  operate  directly  oil  ot  ihe  circuit  undei 
drawing  a  scant  10  mA  mat  II  use;  a  MAN3 
readoul  10  indicate  any  ot  the  following  States  by 
these  symbols  (H)  ■  t  (LOW)  ■  o  (PULSE)  ■  P  The 
Probe  can  deled  high  treguency  pulses  to  45  MHz 

;an  I  be  used  at  MOS  levels  or  cuciiit  damage 

.  result 


$9.95  Per  Kit 

printed  circuit  board 


PL  5V  1A  Supply 

This  is  a  slardard  TTL  power  supply  using  Ihe  well  known 
LM309K  regulator  IC  to  provide  a  solid  1  AMP  ot  current  at  5 
volts.  We  try  to  make  Ihings  easy  tor  you  by  providing 
everything  you  need  in  one  package,  including  ihe 

ior  on         $9.95  per  Kit 


Circle  87  on  inquiry  card. 


computer  display  terminal 


This  display  terminal  has  an  integral  controller,  B/W  cathode  ray  tube  and  keyboard.  The  system  has  a  serial  I/O  interface 
for  communication  and  an  I/O  interface  for  a  printer 


DISPLAY  (P/N  4802-1095-501)  FEATURES: 

•  17"  B/W  CRT 

•  41  lines  of  data 

•  52  characters  per  line 

•  Characters  are  generated  by  a  diode  matrix  "graphic" 
technique 

•  21  special  push-buttons  wired  for  a  program  call  up 

•  Brightness  Control 

•  Self-contained  power  supply 

KEYBOARD  (P/N  4802-1115-501)  FEATURES: 

•  Reed  switch  technology 

•  54  data  keys 

•  28  special  keys  detachable  with  cable 

LOGIC  UNIT  (P/N  4802-1157-502)  FEATURES: 

•  1 024  by  6  bit  core  memory 

•  Printer  I/O  interface 

•  Communication  I/O  interface 

POWER:  115V,  50/60  Hz,  500  Watts 

WEIGHT:  210  lbs.  (including  logic  unit,  keyboard, 
display  and  cables.) 

FOB  LYNN  MASS  (you  pay  shipping) 
Check  with  order  please. 


$180.00 


External  logic  &  power  pack  not  shown. 


u 


AS  IS 


J? 


4  way  cursor  control,  graphics  display. 

The  story:  These  are  unused  terminals  made  for  airport 
ticketing  &  seat  assignment.  After  several  years  of 
storage  they  require  tinkering  to  make  operable.  We  have 
some  hints  printed  such  as  cleaning  PC  fingers.  One  of 
our  customers  has  this  tied  into  his  KIM-1,  another  has 
his  running  with  his  IMSAI.  We  have  data  on  this. 
Should  be  useable  on  most  common  computers.  A  hell 
of  a  deal  and  all  for  a  paltry  $180.00-  Don't  be  left  out 
as  many  were  on  our  past  VIATRON  deal.  Sold  "as  is" 
all  sales  final. 

WITH  COMPLETE  DOCUMENTATION 


SPECTRA  FLAT  TWIST 

50  conductor,  28  gauge,  7  strands/ 
conductor  made  by  Spectra.  Two  con- 
ductors are  paired  &  twisted  and  the  flat 
ribbon  made  up  of  25  pairs  to  give  total 
of  50  conductor.  May  be  peeled  off  in 
pairs  if  desired.  Made  twisted  to  cut  down 
on  "cross  talk."  Ideal  for  sandwiching  PC 
boards  allowing  flexibility  and  working 
on  both  sides  of  the  boards.  Cost  orig- 
inally $13.00/ft 
SP-324-A  $1 .00/ft.  1 0  ft/$9.00 

SP-234-A    $1.00ft50cond.     10ft/$9.00 
SP-234-B         .90ft32cond.     10ft/$8.00 


In  tall  TO-5  can  TINY 

DPDT,  24  volts.  Brand  new.  SWITCH 

cost  $16.00  each  TELEDYNE 

SP-134    $3.00  each   2/$5.00 


WIRE  WRAP  WIRE 

TEFZEL  blue  #30  Reg.  price 
$13.28/100  ft.  Our  price  100  ft  $2.00; 
500  ft  $7.50. 


MULTI  COLORED  SPECTRA  WIRE 


Footage 

8  Cond 

12       " 

14      "        22 

29      "        22 


10' 

#24  $2.50 
22     3.00 


50'  100' 

9.00  15.00 

11.00  18.00 

3.50  13.00  21.00 

7.50  28.00  45.00 


Great  savings  as  these   are  about  1/4 
book  prices.  All  fresh  &  new. 


sTie&wuz 


Precision  16  pin  DIP  network  as  shown. 
Each  resistor  IK.  For  pull-up/pull  down 
interface  networks.  Value  over  $1.00 
each;  New,  CTS  or  Beckman 


J^AfiJ^U^LR, 


sp-320  pack  of  6     $1  .oo     1^4^^^ 


Please  add  shipping  cost  on  above.  Minimum  order  $10 

FREE  CATALOG  SP-9  NOW  READY 
P.O.  Box  62,  E.  Lynn,  Massachusetts  01904 


Circle  18  on  inquiry  card. 


I 


ITM 


II U  I  CrilWLE 


MICROCOMPUTING  FOR  HOME  AND  THE  SMALL  RUSINESSMAN 


The  professional  publication  bringing  microcomputing  technology  to  the  hobbyist,  small  businessman,  educator, 
engineer  and  student.  Every  issue  edited  to  bring  technology  and  people  together  in  the  simplest  manner. 


INTERFACE  AGE  is  packed  with 


HARDWARE  ARTICLES  —  Product  profiles,  comparisons, 
applications,  modifications  and  construction  pro- 
jects. 

SOFTWARE  ARTICLES  —  Microcomputer  development 
software,  short  software  routines,  application 
software,  off-line  software  storage  formats,  software 
communication  standards  and  access  to  the 
microcomputer  software  depository  for  all  INTER- 
FACE AGE  readers. 

TUTORIALS  —  Fundamentals  of  micro  processors,  basics  for 
microcomputing,  professional  to  technical  transition 
information,  understanding  software,  elementary 
math  for  computing. 

•  NEW   PRODUCTS  —   Manufacturer  profiles  and   latest 
product  releases. 

USER  COMMUNICATION  -  UPDATE  -  devoted  to 
club  and  organization  announcements 
and    activities.    —   LETTERS   TO   THE 

EDITOR  —  Reader  forum  for  expression 
of  opinions  and  feedback  on  articles  and 
features. 

MICRO-MARKET/FIFO  FLEA  MARKET  -  Low  cost/no 
cost  advertising  for  the  new 
marketeer/garage  sale  enthusiast. 


If  you  need  to  know  how  to  get  started  in  microcomputing  or  need  the  valuable  software  once 
your  system    is  completed  then  INTERFACE  AGE  is  a  must  for  you. 


Don't  Delay  —  Subscribe  Today! 


r 


INTERFACE  AGE  MAGAZINE 


1 


P.O.  Box  1234 
Cerritos,  CA.  90701 


12  Monthly  Issues: 

$10  U.S.,  $12  Can./Mex., 

$18  International 


□     CHECK 


□      MONEY  ORDER 


Name. 


Address. 
City 


Country  . 


State- 


Zip. 


L 


MAKE  CHECK  PAYABLE  TO:  INTERFACE  AGE  MAGAZINE 
Circle  89  on  inquiry  card. 


J 


NEW  COMPUTER  INTERFACE  BOARD  KIT 


Our  new  computer  kit  allows  you  to  interface 
serial  TTL  to  RS  232  and  RS  232  to  TTL  There 
are  four  of  these  supplied  with  the  kit,  so  you 
can  run  up  to  four  devices  on  one  TTL  or  four 
separate  TTL  to  RS  232  devices. 

Typical  use:  You  can  use  your  computer 
ports  to  run  an  RS  232  printer,  video  terminal 
and  two  other  RS  232  devices  at  once,  without 


constantly  connecting  and  disconnecting  your 
terminals. 

Example:  Out  store  to  printer  —  Voltage 
Q  Q    requirement  +  5V  and  ±  5V  or  ±  12  V  depend- 
ing on  your  RS  232  device. 

We  supply  —  board,  connectors,  documen- 
tation and  components.  Sorry,  we  do  not  supply 
case  or  power  supply. 


GENERAL  PURPOSE  COMPUTER  POWER  SUPPLY  KIT 


This  power  supply  kit  features  a  high  frequency  torroid  transformer  with  switching 
transistors  in  order  to  save  space  and  weight.  115V  60  cycle  primary.  The  outputs 
with  local  regulators  are  5V  to  10A,  in  one  amp  increments,  -  5V  at  1A,  ±  12V  at  1 A 
regulators  supplied  6  340T-5  supplied. 


$79 


00 


UNIVERSAL  4K 
MEMORY  BOARD  KIT 


$74 


50 


This  memory  board  may  be  used  with  the 

F8  and  with  minor  modifications  may  be  used 

with  KIM-1jup. 

32-2102-1  static  RAM's,  16  address  lines, 
8  data  lines  in,  8  data  lines  out,  all  buffered.  On- 
board decoding  for  any  4  of  64  pages,  standard 
44  pin,  .156"  buss. 


F8  EVALUATION 
WITH  EXPANSION 

A  fantastic  bargain  for  only 
with  the  following  features: 

•  20  ma  or  RS  232  interface 

•  64K  addressing  range 

•  Program  control  timers       • 

•  1K  of  on-board  static  • 
memory  • 

•  Built  in  clock  generator       • 


BOARD  KIT 
CAPABILITIES 


$99 


00 


64  Byte  register 

Built-in  priority  interrupts 

Documentation 

Uses  Fairbug  PSU 


FOR  FAIRBUG  4K  F8  BASIC  ON  PAPER  TAPE  $2500 


2"?08  8K  EPROM         S24.95 

2522STATICSHIFTRE6  S   1  95 

2b13  CHARACTER  GEN  S   9  95 

2518  HEX  32BITSR $3.50 

2102  1  1024  BT  RAM $   i.3g 

S2804 K  DYNAMIC  RAM      .  S   6-95 

MM5202A  UV  PROM S    6  95 

MM5203  UV  PROM S    6  9b 

1702A  UVPROM      S   5.95 

5204-4K  PROM S10  95 

AY  5  1013  UART.  ;  «.  ,y .- ,y  ;,    j   695 

MINIATURE    MULTI-TURN  TRIM    POTS 
1G0,  500,  2K,5K,10K,25K.50K.tOOK,200K 

1  Meg,  S.75i;ach     3/S2.00 

MULT  I  TURN  TRIM  POT  S  Similar  to  Bourns 
3010siylc3/16"x5/8"x1   1/4".  50.  100. 
IK,  I0K.  50K  Ohms        SI  .50  mi.   .     3/54,00 
1.1(11  If  ACTIVATED  SCHs 
TO  18,  200V  1  A S    1.76 

TRANSISTOR  SPECIALS 

2N3585  NPN  Si  TO  66 S     .95 

2N3772  NPN  Si  TO  3 S    I  60 

2N456A  PNP  GE  S     .75 

2N4908   PNP  Si    10  3  .   .    S    1.00 

2N6056  NPN  Si  TO  3  Darlington      S  1.70 

2N5086  PMP  Si  TO-92 4/S  1.00 

2N4898  PNP  TO  66 S     .60 

2N404  PNPGE  TO  5 5/S    1.00 

2N3919  NPNS.  TO  3  RF S   1.50 

MI'SA  1  3  NPN  Si  TO  92       3/S    1 .00 

2N3767  NPN  Si  TO  66  .  .  S     .70 

2N2222  NPN  Si  TO  18  .  .  .  .  5/S   1.00 

2N3055  NPN  S.  TO-3 S     .80 

2N3904  NPN  S.  TO  92  .  .  .  5/S   1 .00 

2N3906  PNPSr  T0  92 5/S   1.00 

2N5296  NPN  Si  TO-220 S     .50 

2N6109  PNP  Si  TO-220 S      .55 

2N3G38  PNP  Si   TO-5 5/S    1  .00 

2NG5I  /  NPN  TO  92  Si         3/S  1 .00 

C/MOS  (DIODE  CLAMPED) 

74C10    22  4016  40  4029  1  10 

MCI 93  '50  4017  1.05  4030  .22 

4001  .22  4018  1.00  4033  1  50 

4002  .22  4019  25  4035  1  10 

4006  1  20    4020   1  05    4042    ?B 

4007  22    4022    95    4046  2.25 

4009  .42    4023    22   4049   40 

4010  ,42    4024   ,  75    4050   40 

4011  .22    4025   22    4055  1  50 

4012  22    402G  1  25    4066   SO 

4013  40    4027   40    4071   .27 
4015    95    4028   HE  4076  1.05 

IN  4148  UN914)  15  SI  0U 

MCA  81    OP]  ICAI    !  [Ml  i  SWITCH     SI  -■>" 

LED  READOUTS 

FND359C.C..4"  S   .55   HP  7740  .3"  C.C.  SI. 

FND  70  C.C.   A"  S   .60  MAN-7-.3"  C.A.  S   . 

END  503  C.C.  .5"  Si. 05    NS  33-3  dig.  array  S   . 

END  510  C.A       5"  SI  05    Dl    747  C  A     6"  SI 


Terms:  FOB  Cambridge,  Mass. 
Send  Check  or  Money  Order. 
Include  Pos 
Order  $5.00,  COD'S  $20.00 


PRINTED  CIRCUIT  BOARD 


7  WATT LD-65 LASER  DIODE  IR   $a95 


2N  3820P  FET S     45 

2N  5457  N  FET $   .45 

2N2646.     ...  ...         S  .45 

ER  9O0  TRIGGER  DIODES  4'  SI  00 

2N  6028  PROG    UJT  S    66 

8     PIN  DIP  SOCKETS  .   .       .       S   .24 

14PIN  DIPSOCKETS  .   .  S   .25 

16  PIN  DIP  SOCKETS  $  .28 

18  PIN  DIP  SOCKETS       S     30 

24  PIN  DIP  SOCKETS  S  ,40 

28  PIN  DIPSOCKETS $   .50 

40  PIN  DIP  SOCKETS $   .60 

VERIPAX  PC  BOARD 
This  board  is  a  1/16"  single  si  tied  papei  apoxy 
board,   W'xBW    DHILLED    and   ETCHED 
which  will  hold  up  io  21  single  14  pin  iC's 
or   8.    16.  ot    LSI  DIP  IC's  wiih  busses  lot 

power  supply  i:npnec'or S4  00 

MV5G91  YELLOW-GREEN 

BIPOLAR  LED SI. 25 

FP  100  PIIOl  O  THANS S     .50 

RED,  YELLOW,  GREEN  or  AMBER 

LARGE  LED's     6/S1.00 

1L-5  (MCT-2) S  .75 

MOLEX   PINS 1 00/$ I  00 

1000/ $8  00 
10  WATT  2ENERS  3.9,  4.7,  5.6,  8.2, 

12,15.18.22.100,150  or  200V     e.i.  S   .60 
1   WATT  ZENERS4. 7,  5.6,10,  12,  15 

18  or  22V ea.  S  .25 

MC6860  MODEM  CHIP $9.95 


Silicon  Power  Rectifiers 


TANTULUM  CAPACITORS 


Full  Wave  Bridges 


22UF  35V  5/S  1.00 
47UF  35V  5'$1.00 
68UF  35V  5S1  00 
1UF  35V  5.S1.00 
2.20UF  20V5/S1  00 
3  3UF  35V  4S1  00 
4.7UF  15V   5/S1.00 


3A         12A          50A         125A 

100      0G 

.14            30            .80           3   /0 

200     .07 

.20           .35          1.15           4.25 

400     .09 

.25           .50          1.40           6.50 

COO     .11 

.30           .70          1.80           8.50 

800    .15 

.35           .90         2.30         10.50 

1000    .20 

.45         1   10         2.75         12.50 

SILICON  SOLAR  CELLS 

2V  diameter 
.4 V  at  500  ma.  $4.00  / .  2  V  at  200  mils  $2.00 


309K S    .95         340K-5.12.15 

723      S    .50  or  24V.  ...    SI. 25 

LM  376     ....  S    .GO         340T-5,  6,  8,   12 

320K  5  or   15V  S1.40  15.18  or  24VS1  10 

320T-5,12,15  78  MG       51.35 

ot   24V       .  .  $1.25  79  MG       SI. 35 

RS232  DB  25P  male $3.25 

CONNECTORS         DB  25S  female  .     .     S3.95 


7400 
7401 
7402 
7403 
7404 
7405 
7406 
7407 
7408 
7409 
7410 
7411 
7412 
7413 
7414 
7416 
7417 
7420 
7425 
7426 
7427 
7430 
7432 
7437 
7438 
7440 
7441 
7442 


CTS 

MIN1A1  URE   DIP 
206  4    Fori-    SPST  s 

SW 

VUll 

TCHES 
lies 

" 

one 

nmidip  p.ick 

lie 

SI    75 

CTS 

2068 

Eight  SPST 

wit 

rfws 

in  .i    16 

I 

ii   DIP 

package. 

SI  95 

ALCU  MINIATURE  TOGGLE  SWITCHES 

MTA  106  SPDT SI. 20 

Ml  A  206  DPDT SI.  70 


SOLID  STATE  SALES 

P.O.  BOX  74B 

SOMERVILLE,  MASS.  02143  TEL.  (617)  547-4005 


WE  SHIP  OVER  95% 

OF  OUR  ORDERS  THE 

DAY  WE  RECEIVE  THEM 


Circle  90  on  inquiry  card. 


High  quality  sockets  for  IC's  and   PC  interconnections.  Check 
our  price  and  quality  and  you  will  see  why  TRI-TEK  Is  fast 
becoming  the  leader  in  IC  sockets. 

Low  Profile  DIP  Solder  Toil  (Tin) 


1-9 

10-24 

25-100 

SKT-0802  8pin 

.15 

.15 

.14 

1402  I4pin 

.18 

.17 

.16 

1602  16pm 

.20 

.19 

.18 

1802  I8pin 

.27 

.26 

.25 

2002  20pin 

.29 

.28 

.27 

2202  22pin 

.35 

.34 

.33 

2402  24pin 

.36 

.35 

.34 

2802  28pin 

.42 

.41 

.40 

4002  40pin 

.60 

.57 

.53 

3  Level  Wire  Wrap    Gold 


5KT-I400 
1600 
1800 
2400 

4000 


■   1-9 

.38 
.42 
.73 
1.00 
1.69 


10-24 
.37 
.41 
.65 
.91 
1.51 


25-100 
.36 
.40 
.59 
.83 
1.37 


PRESTRIPPED  WIRE  WRAP  WIRE 

Highest  quality  30  ga.    Kynar  insulated  silver  plated  wire  For 
wrapping.    Stripped  1"  on  both  ends.    Indicated  lengths  are 
lengths  of  insulated  portion.       Packed  100  per  sturdy  plastic 
vial  or  1000  per  poly  bag.    Compare  our  prices  I II .  Available 
in  Slack,    Red,  Yellow  and  Green.     State  color  desired. 


Length 
1" 
2" 
4" 
6" 


Price  per  tube  of  100 
SI. 48  (WW30VC-1) 
SI. 60  (WW30VC-2) 
$1.85  (WW30VC-4) 
S2.20  (WW30VC-6) 


Price  per  bag  of  1000 
S11.84  (*WW30BK-1) 
S12.80  ('WW30BK-2) 
$14.80  ('WW30BK-41 
SI  7.60  (*WW30BK-6) 


ROLLS  OF  WIRE  SAME  AS  ABOVE '30  ga.  KYNAR) 
100  Ft.  ..$2.95      500Ft $8.95    ioOOft.  ..$14.95 


IC 
INTERCONNECT 
ASSEMBLIES 


SINGLE  END 


No  OF  Pins 


GOPOBffiJ 


Says 


78HGKC     5A  VARIABLE  REGULATOR 

NOW-   at    last,    a   high   current  adjustable   regulator. 
Same    simple   circuitry   as    the  popular   78GKC.      Needs 
only   two   external    resistors    to  program   to  any  volt- 
age between  +5   and    30V  (?   5A   output. 

78HGKC $13.95 

Spec 30 


NEW  BOOK 


NEW  1977  VERSION  OF  NATIONAL'S  CMOS 
Greatly  expanded  now  contains  530  pages  of  data  on  the  7AC 
series  as  well  as  the  popular  4000  series.  Also  has  data  and 
applications  on  the  more  complex  CMOS  products  far  which 
National  has  become  famous. 
CMOS  DATA  BOOK-  77  Edition  by  National $3.95 


PROFESSIONAL  TEMPLATES-LOGIC   SYMBOLK-Stand    MIL806-1 

3/4  Size $3.50 

1/2  Size (Handy  shirt   pocket  size) $3.25 

Conmijte^FlowChart^ynibols^^^^^^^^^^^$3^50 


100  PIN  MINICOMPUTER  PC  CONNECTORS 
2X50  with    .  125"  spacing.  Solder  tall  or  wrap  terminals.  By  Tl. 
PCC-100ST  (solder). ...$4.99  PCC-100WW. . . .  $4.99    4/S17.75 


HCH6571A   is   an   8192-Bit   Horizontal-Scan    (Row   select) 
character  generator  with   shifted    characters.      It 
contains   128   characters    In  a   7X9  matrix,    and   has    the 
capability   of   shifting   certain   characters    that   norm 
ally   extend   below   the  baseline,    such   as    j,y,g,p   and 
q.      A   7-bit   address   code    is   used   to   select   one   of 
the   characters. 
Features: 

.Static   operation 

.TTL  compatability 

.CMOS   compatability    (5V) 

.Shifted    character  compatability 

.Includes  Greek  alphabet 

.Maximum  access    time   =500nS 
(See   article   in  March    '77   issue   of   73  Magazine   for 
applications    including  TV-Computer   interface) 

MCM657IA $9.95 

Specs $1.00 


I 


MM5320    TV  SYNC  GENERATOR  I.C. 
Generate  all  the  sync  pulses  necessary   for  camera  or  video 
terminals.    Use  with  MCM657IA  in  the  TV-Computer  inter- 
face.   MM5320N SI  8 .  80 

Specs 60c; 


C30-1    400V,  25A  Stud  SCR 52.25 

SC45E    500V,   lOAStudTrioc SI  .59 

Insulated  Stud  400V,  10A  TRIAC  assembly  with  built-in 
diac.    TRI-133 SI  .85 

TIP-30    40V,  1  amp  PNP  Plastic 50? 

TIP-33    40V,  lOAmp  NPN  Plastic $1.00 


LM1815  ADAPTIVE  SENSE  AMP  CHIP. 
Used  with  motor  control  to  adopt  to  variable  input  and  noise 
levels.     Applications  include  zero  crossing  switch,  motor 
control,   tachometers,  motor  testing. 

LM1 81 5N $5. 72 

Specs 30? 


1N5393    200V,  1.5A  Diode.    Sturdy  replacem 
1  N4003  at  a  good  savi  ngs 


:nt  for 
. .  1 5/S1 


2N2369      High  Speed  NPN  switching  transistor.     Marked 
for  a  giant  computer  company  with  house  number.    TO-18 
metal  case.    PRIME  PARTS!!  1 1 
*2501  -12 (2N2369  House  Numbered) 8/$l 

LM7812KC/LM340-12.    Brand  new,  industrial  excess  in- 
ventory brings  you  a  real  bargain  in  this  +12V,   1A  regula- 
tor.   Made  by  Silicon  General  for  one  of  those  big  'puter 
companies. 
LM7812KC/340-12 SI. 49!  I 

2N3902.    High  voltage  NPN.    VCEX=700V,  VCEO=400V, 

IC=3.5A,   PD=100W. 

2N3902...  SUPER  SURPLUS  BARGAIN!!  I S3. 00 

1N2071.      600V,  750mA  diodes 15/$]. 00 


NUMBER  CRUNCHER.    MM57109N  I.C. 
A  scientific  calculator  chip  programmed  to  work  with  BCD 
coded  data  and  hard  wired  I/O  instead  of  keyboard  and 
display  as  usually  found.  .This  allows  an  easy  connect  to 
data  sources  such  as  instruments  and  micro  computer  data 
busses.    Provides  you  with  full  range  of  scientific  comput- 
ation without  the  drudgery  of  having  to  program  the  detail- 
ed algorithm. 

MM57109N...with  22  pages  of  specs $21.92 

Specs  only $  2.00 


SIGNETICS  8000  SERIES  TTL  LOGIC 
These  quality  units  are  faster  and  have  great) 
out  capability  than  standard  TTL.  From  a  giai 
tory  change-over  you  get  real  bargain  prices, 
are  house  numbered,  but  we  provide  a  referenci 
pin-out   sheet. 


N8880A. 
N8822A. 
N8885A. 
N8890A. 
N8202A. 


.Quad-2    input    NAND   gate 

.Dual   J-K  master/slave  F/F. 

.Quad   2-input   NOR   gate 

.Hex   Inverter 

.10  bit    "D"    type    register.. 


.8/$ 
A/$ 
.8/$ 
.6/$ 
..   $ 


All 
:   and 

1.00 
1.00 
1.00 
1. 00 
1.25 


The   following   items   are  available    in    large   quantities 
Dealer   or  manufacturer   inquiry   is    invited. 

2N3414..    NPN   switch   on   reels 10/$1 

1N753A..    6.2V,    5%,    ^W   Zener 5/$l 

C106F2..  50V,  4A  SCR  w/socket 3/$l 

1N967B..  18V,  57.,  %W  Zener 5/$l 

42501-1  Quad    Hi   speed    NPN   transistor   in   14  pin   DIP 
package.      Similar   to  Motorola  HPQ3303 5/$l 


MC14411    BIT   RATE  GENERATOR. 
Single  chip   for  generating  selectable  frequencies  for  equip 
ment    in  doto  communications  such   as  TTY,    printers,    CRT  s 
or  microprocessors.      Generates  14  different  standard     bit 
rates  which   are   multiplied   under  external    control    to      IX, 
8X,    16X  or  64X  initial   value.      Operates  from  single  +5 

volt  supply.       MC14411 $11.98 

4  pages  of  data 40 

Crystal   for  the  above $4.95 


•  Accuracy:  10.05%  of  Reading  it  Count 

•  Two  Voltage  Ranges:  1.999  V  and  199.9  mV 

•  Up  to  25  Converiions/t 

•  Zjn>  1000  M  ohm 

•  Auto-Polarity  and  Auto-Zero 

•  Single  Positive  Voltage  Reference 

•  Standard  R-Senes  CMOS  Outputs-Drives  One  Low  Power 

Schottky  Load 

•  Uies  On-Cliip  System  Clock,  or  External  Clock 

•  Low  Power  Consumption:  8.0  mW  typical  @  ±5.0  V 

•  Wide  Supply  Range:  e.g..  ±4.5  V  to  ±B.O  V 

MC14433   SINGLE  CHIP  3JDIGITA/D 

Single  chip  combines  linear  and  CMOS  digital  to  bring  you 

the  simplest  yet  DVM  approach.  Requiring  only  4  external 

passive  parts,  this  subsystem  gives  you:  Auto  polarity,  auto 

zero,  single  voltage  reference,  8  mW  operation,  overrange, 

underrange  signals,  25  conversions  per  second  and  .05%  i 

1  count  accuracy!     100  uV  resolution.    24  Pin  DIP. 

MCI 4433P with  specs $19.55 


tm-tek,  inc. 

6522  noetri  43P0  Avenue. 

GlenoALe,  ARizona  swoi 

phone  602  -  931-6949 


We   pay   surface  shipping    on  all    orders  over    $10  US,    $15   foreign    in   US   funds. 
Please    add  extra    for  first  class  or  air  mail.    Excess  will  be  refunded.    Orders 
under   $10,   add   $1    handling.    Pleose  add  50^  insurance.    Master  charge  and 
Bank  America  cards  welcome,    ($20  minimum).   Telephone  orders  may  be  placed 
10AM  to  5:30PM  daily,    Mon  thru   Fri .      Call   602-931-4528.    Check  reader 
service   card   or  send  stamp   for  our    latest   flyers   packed  with    new   and   surplus 
electronic   components. 


Circle  91  on  inquiry  card. 


Header  Service 


Inquiry  No.  Page  No. 

70  Alpha  Digital  Systems  163 
14  Anderson  Jacobson  50 

7  Apple  22,  23,  24 

1 1  Backer-Lorinq  32 

51  Bits  Inc    129,135,142-145,160 

71  Bits  and  Bytes  163 
41  BPI  131 

72  Charles  Floto  163 

73  Cheap  Inc  163 
56  Comptek  151 

4  Compucolor  6,  7 

24  Computalker  87 

74  Computer  Corner  163 

75  Computer  Depot  163 

61  Computer  Enterprises  154 

76  Computer  Hut  163 

77  Computer  Mart  of  NH  163 
47  Computer  Room  137 

31  Computer  Land  107 

68  Computer  Store  162 

83  Computer  Warehouse  167 

22  Continental  Specialties  83 

2  Cromemco  1,  2 

39  DAJEN  Electronics  128 

63  Data  Search  155 

34  DataSync113 

21  Digital  Group  77 

33  Digital  Research  111 

92  ECDCIII 

78  Educational  Data  164 
59  Edityper153 

85  Electronic  Warehouse  168 

79  EMA  Industries  164 
27  Extensis  99 


To  get  further  information  on  the  products  advertised  in  BYTE,  fill  out  the  reader 
service  card  with  your  name  and  address.  Then  circle  the  appropriate  numbers  for  the 
advertisers  you  select  from  this  list.  Add  a  9  cent  stamp  to  the  card,  then  drop  it  in  the 
mail. 

*Correspond  directly  with  company. 


Inquiry  Nc 

i.                Page  No. 

86 

Godbout  169 

# 

HAL  Communications  134 

18 

Heath  Company  60,  61 ,  62,  63 

28 

Heuristics  101 

80 

HybirdTech  164 

8 

iCOM  26,  27 

3 

IMSAI 5 

89 

Interface  Age  1  73 

50 

International  Data  Systems  141 

87 

James  170,  171 

40 

Kent  Moore  130 

94 

Logic  Design  Inc  164 

88 

Meshna  172 

97 

Microcom  129 

95 

Microcomp  164 

58 

Mini  Computer  Suppliers  152 

35 

Micromation  115,  117 

60 

Microware  1  53 

44 

MSI  133 

82 

Mikos  166 

38 

MiniTerm  125,  148 

93 

MITSCIV 

81 

Morrow  165 

6 

Motorola  91 

62 

mpi  154 

55 

Mullen  151 

29 

National  Multiplex  103 

16 

North  Star  Computers  57 

66 

Objective  Design  160 

12 

OSI  40 

20 

OK  Tool  76,  139 

65 

Oliver  Audio  Engineering  158 

43 

Omni  132 

49 

PAIA  140 

53 

Parasitic  Engineering  47,  147 

Inquiry  No 


23 


54 
48 
5 
17 
37 
96 
26 
19 

15 
69 
32 
57 
13 
90 

1 
80 
25 
67 
10 
42 
46 
84 
91 
52 

9 
36 
64 
30 


Page  No. 

PC  77  51,159 

PerCom  Data  11,  150 

Peripheral  Vision  85 

Personal  Computing  Expo  161 

Polymorphic  Systems  33 

Prentice  Hall  149 

Prime  Radix  138 

Processor  Technology  8,  9,  10 

Quay  59 

RHS  Marketing  120,  121 

Rotundra  Cybernetics  164 

Howard  W  Sams  97 

Scelbi  69 

Scientific  Research  35 

Seals  55 

Serial  Systems  163 

Smoke  Signal  Broadcasting  109 

Software  Records  1  52 

Solid  State  Music  41 

Solid  State  Sales  174 

Southwest  Tech  CI  I 

Sunny    Computer  Stores  164 

Synchro-Sound  Enterprises  88,  89 

Tarbell  Electronics  162 

Technical  Design  Labs  31,  117 

Technical  Systems  Consultants  132 

Telpar  136 

Trico  167 

Tri  Tek  175 

Urban  Instruments  146 

Vector  Graphic  28,  29,  95 

Worldwide  Electronics  116 

Xybek  155 

Ximedia  105 


G0MG 

[  Y II V  (Jnf,ci(if>  Mtiniftip  Etx 


The  April  BOMB,  Exploded.  .  . 

There  are  risks  associated  with  every 
action  one  can  take,  and  occasionally  the 
results  fulfill  the  worst  expectations.  The 
April  1977  issue  of  BYTE  bombed  on  con- 
tent with  respect  to  the  inclusion  of  several 
(ie:  lour  articles)  on  a  fiction  theme,  and 
one  intentionally  outdated  (as  April  Fool) 
microprocessor  update  on  the  8008  (which 
became   obsolete    for   new  design   with   the 


On  BOMB  Card, 
Article  No. 


ARTICLE 


1  Brown:    How  to  Computerize  Your  Model  Railroad 

2  Hall:    This  Circuit  Multiplies 

3  Borrmann:    Condensed  Reference  Chart  for  the  6800 

4  Hart-Badger:  A  Train  Control  Display  Using  the  LSI-11 

5  Barbier:    The  TV  Oscilloscope 

6  Boddie:    Speech  Recognition  for  a  Personal  Computer  System 

7  Maurer:    How  to  Pick  up  a  Dropped  Bit 

8  Grappel     Give  Your  Micro  a  Megabyte 

9  Simmons:    An  Introduction  to  Numbers 

10  Zolman:    A  Machine  Code  Relocator  for  the  8080 

11  Baker:     BASICally  BASIC 

12  Pittet:    How  Far -Which  Way? 

13  McGahee:    Add  Cursor  Control  to  Your  TVT  II 

14  Grater:    Giving  KIM  Some  Fancy  Jewels 


PAGE 

12 

36 

42 

44 

52 

64 

72 

78 

82 

92 

96 

118 

122 

126 


introduction  of  the  Intel  8080).  The  winner, 
by  a  large  margin,  was  the  article  by  Jack 
Emmerichs  on  the  Tiny  Assembler  6800, 
which  came  in  the  +2  a  point  relative  to  the 
mean  for  1  3  articles.  Second  place  went  to  a 
semifiction  story  by  Steve  Garcia  (count- 
ering the  trend  just  cited)  entitled  "Having 
a  Private  Affair  With  Your  Computer." 
Steve's  article  came  in  at  the  +1  a  point,  just 
slightly  ahead  of  a  group  of  articles  which 
clustered  above  the  mean  at  approximately 
the  same  displacement.  The  remaining  fic- 
tion articles  (and  numerous  comments  on 
the  BOMB  cards)  clustered  around  the  1.5 
a  point  of  the  observed  distribution.  These 
statistics  were  calculated  with  a  program- 
mable calculator.  The  results  should  be 
taken  with  a  grain  of  salt,  since  the  standard 
deviation  was  24%  of  the  mean.  Why  did  I 
put  so  many  of  a  similar  type  of  article  in 
the  April  issue?  It  was,  after  all,  the  April 
Fool  issue;  and  it  provided  a  form  of  con- 
trolled experiment  by  tweaking  the  content 
a  little  far  in  one  direction  while  observing 
the  results  in  the  tally  of  BOMB  cards.  The 
experiment  has  been  concluded  for  the  time 
being  .  .  .C  Helmets" 


176 


JD  >in-i3  nteroiind  Onlay  praetmr  aiaaiava  fraafhcr  mi 

Chiraefr     Foriit  —  III  tfiffarant  I  I  12*  la/tairi 

dafmatla  dat  aatrti  charactan,  diaalavtd  ■■  21  ar 
I  mas  of   IS  to  121  charactara  t*r  imt,  all  ettaifflalla 

in  raal   tfaai 

flii    EfiCAil    —  •  bit  aattirn  mth  a  121  m  III  tavir-i 
diapiav.  «aeh  nvara  indiviiuaiiv  atttahia. 


t  af  tavt*  ana  i 

touch    it. 


Key  Into 
Maxi-Power  <g>  Micro-! 


Micromind  is  an  incredibly  flexible, 
complete  and  expandable,  hardware/ 
software,  general  purpose  computer 
system.  You  won't  outgrow  it. 

Hardware  includes  an  80  key,  software- 
definable  keyboard,  I/O  interface  board, 
6500A-series  microprocessor  (powerful 
enough  for  advanced  computing),  a  high- 
detail  graphics  and  character  display 
processor,  power  supply,  rf  modulator, 
and  connections  for  up  to  4  tape  recorders 
plus  TV  or  monitor.  An  interconnect  bus 


permits  15  additional  microprocessors, 
parallel  processing  and  vastly  increased 
computing  power. 

System  software— including  ECD's  own 
notsoBASIC  high  level  language,  on 
advanced  error-correcting  tape  cassettes 
— provides  a  word  processing  editor,  a 


Name. 


powerful  assembler,  a  debugger,  a  file 
system,  graphic  routines,  and  peripheral 
handlers.  We  also  include  dynamic  graphic 
games:  Animated  Spacewar  and  Life. 
ECD's  standard  Micromind  /uM-65 
supplies  8K  bytes  of  memory.  Additional 


32K  byte  expansion  boards  and  a  mapping 
option  give  Micromind  expandable  access 
to  64  Megabytes.  Utilizing  software- 
controlled  I/O  channels,  Micromind's 
advanced  encoding  techniques  load  data 
from  ordinary  tape  recorders  at  3200 
bits  per  second. 

Micromind  comes  to  you  ready-to-use, 
factory  assembled  and  fully  tested.  Among 
microcomputers,  it  has  the  largest  memory 
capacity  and  the  fastest  storage.  You're 
looking  at  the  work  of  the  finest  display 
processor  on  the  market.  You  won't  find  a 
microcomputer  with  a  more  powerful  CPU. 
You  won't  find  a  computer  with  a 
more  flexible  keyboard.  You  won't 
find  anything  to 

touch  it  at 
$987.54. 


So,  quit  the  kluge  scene  and  key  into 
Micromind.  You'll  be  a  main  frame  per- 
former, with  all  the  comforts  of  home. 
We're  not  fooling . . .  this  is  the  cat's  /x! 

ECD  CORP. 
196  Broadway,  Cambridge,  Mass.  02139 
(617)  661-4400 


€C1> 


Address . 


City/State . 


Zip. 


□  Fantastic!  Check  enclosed:  $987.54.  shipping  paid  by  ecd 

D  BankAmericard    □  Master  Charge     Mass.  Resident  add  5%  Sales  Tax 

# Expiration  Date . . 


Signature 

□  Send  me  your  brochure. 

Actual  unretouched  photographs. 


Circle  92  on  inquiry  card. 


• 


It  Comes  Naturally  With 
The  Altair™  8800b 

The  Altair  8800b  from  MITS:  the  second  gen- 
eration design  of  the  microcomputer  that 
started  it  all.  The  mainframe  that  has  the  abil- 
ities everyone  is  demanding  from  microcom- 
puters today 

Expand-ability: 

The  Altair  8800b  power  supply  and  one- 
piece,  18-slot  motherboard  allow  efficient 
and  easy  expandability  for  memory  and  I/O 
options  All  Altair  PC  boards  are  designed  to 
live  youn'tqxlmum  capability /lowest  power 
-  possible  per  bqiard.  This  means  that 
for  each  MOI  used  you  get  more  features  and 
require  less  power,  than  with  any  of  the  "off- 
brand"  Altair  bus-compatible  boards. 

Whether  you  buy  an  enliie  system  up  front  or 
choose  toMjfijhd  gradually,  it's  easy  to  get 
the  corcJtflj^qlWt  you  -.need  with  the  com- 
plete fdJitW'Of  Altair  peripheral  equipment, 
Including 
floppy  disk,  line 
printer,  audio 
cassette  record 
interfaoe,  A/D 
converter, 
PROM  program- 
mer, serial  and 
parallel  I/O  boards, 


choice  of  foui  different  memory  boards  and 
many  others. 

Reli-ability: 

The  unique  design  features  of  the  Altair 
8800b,  which  have  set  the  standard  for  the 
microcomputer  industry,  make  it  the  most 
reliable  unit  of  its  kind.  The  Altair  100-pin  bus, 
the  now-standard  design  used  by  many  imi- 
tators, has  been  "standard"  all  along  at  MITS. 
The  unique  Front  Panel  Interface  Board  on 
the  Altair  8800b  isolates  and  filters  front  panel 
noise  before  it  can  be  transmitted  to  the  bus. 
The  all-new  CPU  board  utilizes  the  8080A 
microprocessor,  Intel  8224  clock  generator 
and  8216  bus  drivers. 


Flex-ability: 


Meeting  the  diversified  demands  of  an  ever- 
increasing  microprocessor  markoi  squires 
flexibility:  not  just   hardware   flev.r  ■;  ty  but 


software  flexibility  as  well.  MITS  software, 
including  the  innovative  Altair  BASIC  lan- 
guage, allows  the  full  potential  of  the  Altair 
8800b  computer  to  be  realized. 
8K  ALTAIR  BASIC  has  facilities  tor  variable 
length  strings  with  LEFT$,  RIGHT$.  and  MID$ 
functions,  a  concatenation  operator,  and 
VAL  AND  STR$  functions  to  convert  between 
strings  and  numbers. 

Extended  ALTAIR  BASIC  allows  integer,  single 
and  double  precision  variables,  automatic 
line  numbering  and  renumbering,  user- 
defined  string  functions,  PRINT  USING  for  for- 
matted output  and  a  powerful  EDIT  com- 
mand for  editing  program  files  during  or  after 
entry.  Extended  statements  and  commands 
include  IF .  .  .  THEN  .  .  .  ELSE,  LIST  and  DELETE 
program  lines,  SWAP  variables  and  Trace  On 
and  Off  for  debugging. 

Disk  ALTAIR  BASIC  has  all  the  features  of 
Extended  BASIC  with  the  additional  capa- 
bility to  maintain  sequential  and  random 
;s  disk  files.  Utilities  are  provided  for 
formatting  disks  and  printing  directories. 

In  all  versions  of  ALTAIR  BASIC  you  get  the 
ease  and  efficiency  of  BASIC  for  the  solution 
ot  real  world  problems. 
Package  II.  an  assembly  language  develop- 
ment system  for  the  Altair  8800b.  includes 
system  monitor,  text  editor,  assembler  and 
debug. 

Afford -ability: 

Prices  for  the  Altair  8800b  start  at 
$840.00  for  a  kit  and  $11 00.00  for  an 
I   assembled  unit  (all  documentation 
included). 

For  a  complete  listing  of  prices  on 
all  Altair  products  and  a  free  bro- 
chure, contact: 

MITS,  Inc. 
2450  Alamo  S.E. 
|    Albuquerque,  N.M.  87106 
(505)  243-7821 


NOTE:  Altair  is  a  trademark  of  MITS.  Inc. 


Circle  93  on  inquiry  card. 


X